Có thể chơi thời gian và tổng thời gian phát trong AVPlayer không? Nếu có, làm thế nào tôi có thể làm điều này?Làm cách nào để có thời gian phát hiện tại và tổng thời gian phát trong AVPlayer?
Trả lời
Bạn có thể truy cập vào mục hiện chơi bằng cách sử dụng currentItem
tài sản:
AVPlayerItem *currentItem = yourAVPlayer.currentItem;
Sau đó, bạn có thể dễ dàng có được thời gian yêu cầu đánh giá cao
CMTime duration = currentItem.duration; //total time
CMTime currentTime = currentItem.currentTime; //playing time
_audioPlayer = [self playerWithAudio:_audio];
_observer =
[_audioPlayer addPeriodicTimeObserverForInterval:CMTimeMake(1, 2)
queue:dispatch_get_main_queue()
usingBlock:^(CMTime time)
{
_progress = CMTimeGetSeconds(time);
}];
AVPlayerItem *currentItem = player.currentItem;
NSTimeInterval currentTime = CMTimeGetSeconds(currentItem.currentTime);
NSLog(@" Capturing Time :%f ",currentTime);
tôi đang phát bài hát từ url. nhưng tại thời gian CMTime và thời gian hiện tại CMTime, tôi nhận được 0. vấn đề ở đây cho 0 giá trị là gì? Có ai biết cách giải quyết không ? – Moxarth
Swift:
let currentItem = yourAVPlayer.currentItem
let duration = currentItem.asset.duration
var currentTime = currentItem.asset.currentTime
lấy CMTime từ .currentItem.asset.duration mất 3-4 giây? Cách giải quyết vấn đề này? Tôi vẫn còn sử dụng thread nhưng không được giải quyết? –
Với Swift 2.0, hãy sử dụng tính năng này;
let currentPlayerItem = AVPlayer.currentItem
let duration = currentPlayerItem?.asset.duration
var currentTime = AVPlayer.currentTime()
Tôi đã cố gắng sử dụng AVPlayer.currentTime(), nhưng không may mắn, nhận được lỗi truy cập kém – KavyaKavita
lấy CMTime từ .currentItem.asset.duration mất 3-4 giây? Cách giải quyết vấn đề này? Tôi vẫn còn sử dụng thread nhưng không được giải quyết? –
Swift 3
let currentTime:Double = player.currentItem.currentTime().seconds
Bạn có thể lấy giây của thời gian hiện tại của bạn bằng cách truy cập seconds
tài sản của currentTime()
. Điều này sẽ trả về một số Double
đại diện cho giây trong thời gian. Sau đó, bạn có thể sử dụng giá trị này để tạo thời gian có thể đọc được để trình bày cho người dùng của mình.
Thứ nhất, bao gồm một phương pháp để trả lại các biến thời gian cho H:mm:ss
rằng bạn sẽ hiển thị cho người dùng:
func getHoursMinutesSecondsFrom(seconds: Double) -> (hours: Int, minutes: Int, seconds: Int) {
let secs = Int(seconds)
let hours = secs/3600
let minutes = (secs % 3600)/60
let seconds = (secs % 3600) % 60
return (hours, minutes, seconds)
}
Tiếp theo, một phương pháp mà sẽ chuyển đổi các giá trị bạn lấy ở trên vào một chuỗi có thể đọc được:
func formatTimeFor(seconds: Double) -> String {
let result = getHoursMinutesSecondsFrom(seconds: seconds)
let hoursString = "\(result.hours)"
var minutesString = "\(result.minutes)"
if minutesString.characters.count == 1 {
minutesString = "0\(result.minutes)"
}
var secondsString = "\(result.seconds)"
if secondsString.characters.count == 1 {
secondsString = "0\(result.seconds)"
}
var time = "\(hoursString):"
if result.hours >= 1 {
time.append("\(minutesString):\(secondsString)")
}
else {
time = "\(minutesString):\(secondsString)"
}
return time
}
Bây giờ, cập nhật giao diện người dùng với các tính toán theo thời gian:
func updateTime() {
// Access current item
if let currentItem = player.currentItem {
// Get the current time in seconds
let playhead = currentItem.currentTime().seconds
let duration = currentItem.duration.seconds
// Format seconds for human readable string
playheadLabel.text = formatTimeFor(seconds: playhead)
durationLabel.text = formatTimeFor(seconds: duration)
}
}
- 1. Phát hiện JIT tại thời gian biên dịch trong MonoTouch
- 2. Làm cách nào để tổng hợp thời gian trong Python?
- 3. Làm cách nào để phát hiện tham chiếu .NET thiếu trong thời gian chạy?
- 4. Tính tổng thời gian thời gian trong MySQL
- 5. lập trình thời gian DatePicker thành thời gian hiện tại
- 6. Phát hiện và in dấu thời gian của các khoảng thời gian tắt bằng cách sử dụng SoX
- 7. Phát hiện cài đặt thời gian iPhone 24 giờ
- 8. Java: cách phát hiện thời gian chạy java hiện tại là JRE hoặc JDK?
- 9. Thời gian Joda, Khoảng thời gian đến tổng số milli
- 10. Cách nhận thời gian GPS hiện tại?
- 11. Thanh tiến độ dòng thời gian cho AVPlayer
- 12. Cách lấy thời gian hiện tại
- 13. Thời gian tồn tại của thời gian
- 14. Xcode, iPhone: Cách phát hiện mục tiêu giả lập tại thời gian biên dịch?
- 15. Làm thế nào để có được dấu thời gian Unix trong MySQL từ thời gian UTC?
- 16. Gói R và thời gian thực hiện
- 17. Làm thế nào để bạn đặt thời gian và chỉ thời gian trong lịch trong Java?
- 18. Lấy ngày hiện tại và thời gian với [NSDate ngày] Thời gian ngày
- 19. C# - Định dạng thời gian hiện tại
- 20. Thời gian Android và Java Thời gian
- 21. Cách in thời gian hiện tại trong C++ 11?
- 22. Cách phát hiện thời gian chạy .NET nào đang được sử dụng (MS so với Mono)?
- 23. Phát hiện Thời gian chờ của phiên ASP.Net: Phát hiện Session.IsNewSession và SessionCookie có phải là cách tốt nhất để làm điều này không?
- 24. PHP Kiểm tra xem thời gian hiện tại có trước thời gian quy định không
- 25. Làm thế nào để có được thời gian thời gian trong C#?
- 26. Phát video bằng AVPlayer
- 27. Thời gian thực hiện CPU trong Java
- 28. Phát hiện android của riêng ứng dụng của tôi: versionCode tại thời gian chạy
- 29. Làm thế nào để có được thời gian hiện tại trong mili giây trong C Programming
- 30. Phát hiện nếu qt đang chạy bản dựng gỡ lỗi tại thời gian chạy
sự re cũng là phương thức thuận tiện CMTimeGetSeconds để nhận NSTimeInterval: Thời lượng NSTimeInterval = CMTimeGetSeconds (currentItem.duration); NSTimeInterval currentTime = CMTimeGetSeconds (currentItem.currentTime); – slamor
tôi đã phải thiết lập gọi nó trong hàng đợi chính cho nó để trả về giá trị đúng (hoặc bất kỳ hàng đợi avplayer của bạn đang chạy trong). –
cách gửi khuyến khích này cho LABEL? –