如何在MPMoviePlayerViewController播放视频之前获取视频总时间?iphone MPMoviePlayerViewController:提取总持续时间
4
A
回答
7
要获得电影的总时长,您可以使用:
1)。使用AVPlayerItem
类和AVFoundation
和CoreMedia framework
。 (我用UIImagePickerController
来拍摄电影)
#import <AVFoundation/AVFoundation.h>
#import <AVFoundation/AVAsset.h>
- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info
{
selectedVideoUrl = [info objectForKey:UIImagePickerControllerMediaURL];
AVPlayerItem *playerItem = [AVPlayerItem playerItemWithURL:selectedVideoUrl];
CMTime duration = playerItem.duration;
float seconds = CMTimeGetSeconds(duration);
NSLog(@"duration: %.2f", seconds);
}
2)。 的MPMoviePlayerController有一个属性duration
.Refer Apple Doc
1
如果你不想得到MPMoviePlayerViewController的duration
财产的总时间(因为这带来了电影播放器UI),您可以创建带有通过文件URL传递您的视频文件的AVAsset
对象,然后检查那就是duration
属性。
这个技巧只适用于iOS 5(这是AVAsset的assetWithURL:
来的地方)。
3
得到总的持续时间在MPMoviePlayerViewController
MPMoviePlayerViewController *mp;
float seconds =mp.moviePlayer.duration;
注:以上代码给相关媒体的总时间以秒为
0
你气可以快速使用此方法
func getMediaDuration(url: NSURL!) -> Float64{
var asset : AVURLAsset = AVURLAsset.assetWithURL(url) as AVURLAsset
var duration : CMTime = asset.duration
return CMTimeGetSeconds(duration)
}
相关问题
- 1. 如何提取只包含持续时间的持续时间?
- 2. QMediaPlayer持续时间()总是返回0
- 3. 总结timedates的持续时间值
- 4. 使用Timespan显示总持续时间
- 5. 将总持续时间拆分为行
- 6. sp持续时间不等于sql profiler中语句持续时间的总和
- 7. 查找mp4的持续时间 - iPhone SDK
- 8. 震动iPhone持续指定的时间
- 9. iPhone:获取音频文件的持续时间
- 10. 如何显示视频的总时间和持续时间
- 11. 蟒持续时间
- 12. JSESSIONID持续时间
- 13. Groovy持续时间
- 14. 如何提取音频/视频文件的持续时间?
- 15. 在Java/Android中提取3GP视频文件的持续时间
- 16. 使用AudioQueueServices提取mp3文件的持续时间
- 17. mpeg-2库提取视频持续时间
- 18. 获取FLV持续时间与PHP
- 19. SQL从持续时间获取数据
- 20. 获取AVFoundation视频的持续时间
- 21. 获取视频的持续时间
- 22. 获取AJAX请求持续时间
- 23. 从YouTube获取持续时间url
- 24. 如何获取Soundpool的持续时间
- 25. 从BackgroundAudioPlayer获取持续时间
- 26. SqlCommand.ExecuteReader持续时间小于SQL Profiler批处理持续时间
- 27. “持续时间($持续时间)”的“XPath无效”错误
- 28. MySQL的持续时间和我使用MySQL的工作台提取时间
- 29. 获取日期时间格式之间的持续时间
- 30. 火花 - 为什么火花工作持续时间不等于每个阶段持续时间的总和?
在MPMoviePlayerController中,在我们真正播放视频之前,持续时间为零。如果你得到任何方式,PLZ添加代码 – 2012-01-18 13:25:14
它代表目前已被缓冲的持续时间,而不是总持续时间。 – Maulik 2012-01-18 13:30:24
第一个选项确实成功了,非常感谢。你创造了一天...... :) – 2012-01-19 06:59:54