内容简介:翻译自:https://stackoverflow.com/questions/10814308/how-to-play-video-using-mpmovieplayercontroller
我使用以下代码使用MPMoviePlayerController播放视频,但视频未播放.谁能告诉我为什么?
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); NSString *documentsDirectory = [paths objectAtIndex:0]; NSString *filePath = [documentsDirectory stringByAppendingPathComponent:@"/one.mp4"]; NSString *mediaPath = [[[NSBundle mainBundle]resourcePath] stringByAppendingPathComponent:filePath]; MPMoviePlayerController *moviePlayer = [[MPMoviePlayerController alloc] initWithContentURL:[NSURL fileURLWithPath:mediaPath]]; [[moviePlayer view] setFrame:[[self view] bounds]]; [[self view] addSubview: [moviePlayer view]]; moviePlayer.scalingMode = MPMovieScalingModeAspectFit; [moviePlayer play];
这很奇怪,但是如果你让你的MPMoviePlayerController成为一个属性而不是一个局部变量似乎没问题.似乎在幕后发生了一些事情.我认为这与ARC有关.你在用ARC吗?
这也是你过度添加路径的问题:
// You've already got the full path to the documents directory here. NSString *filePath = [documentsDirectory stringByAppendingPathComponent:@"/one.mp4"]; // Now you're appending the full path to the documents directory to your bundle path NSString *mediaPath = [[[NSBundle mainBundle]resourcePath] stringByAppendingPathComponent:filePath];
当我在模拟器中运行代码时,路径如下所示:
/Users/mlong/Library/Application Support/iPhone Simulator/5.1/Applications/8CFB9B94-BD6A-442C-A525-573FE343506D/VidoePlayer.app/Users/mlong/Library/Application Support/iPhone Simulator/5.1/Applications/8CFB9B94-BD6A-442C-A525-573FE343506D/Documents/one.mp4
它应该是这样的:
/Users/mlong/Library/Application Support/iPhone Simulator/5.1/Applications/8CFB9B94-BD6A-442C-A525-573FE343506D/Documents/one.mp4
所以只需删除此行:
NSString *mediaPath = [[[NSBundle mainBundle]resourcePath] stringByAppendingPathComponent:filePath];
然后将播放器实例化更改为:
_moviePlayer = [[MPMoviePlayerController alloc] initWithContentURL:[NSURL fileURLWithPath:filePath]]; [[_moviePlayer view] setFrame:[[self view] bounds]]; [[self view] addSubview: [_moviePlayer view]]; _moviePlayer.scalingMode = MPMovieScalingModeAspectFit; [_moviePlayer play];
因此,您应该将MPMoviePlayerController添加为包含视图控制器的属性.
翻译自:https://stackoverflow.com/questions/10814308/how-to-play-video-using-mpmovieplayercontroller
以上所述就是小编给大家介绍的《iphone – 如何使用MPMoviePlayerController播放视频?》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
猜你喜欢:- Python 播放音乐:使用 mido 编写,播放多声轨 MIDI 文件音乐
- 使用 AudioTrack 播放音频轨道
- 使用HTML5播放HLS
- Flutter 使用动画播放一组图片
- 使用 OpenGL ES 实现全景播放器
- [流媒体]ijkplayer 播放器,android平台使用说明
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
新零售:低价高效的数据赋能之路
刘润 / 中信出版集团 / 2018-9 / 65.00元
小米新零售,如何做到20倍坪效? 天猫小店,如何利用大数据助力线下零售? 盒马鲜生,为什么坚持必须用App才能买单? 名创优品,实体小店在电商冲击下,如何拥抱春天? 新零售的未来在何方?什么样的思维模式才可应对? 新零售,不是商界大佬的专用名词,它就在我们生活触手可及的各个角落——小到便利店的酸奶,大到京东商城的冰箱,都蕴含着消费者、货物、经营场所三者共同作用的经济逻......一起来看看 《新零售:低价高效的数据赋能之路》 这本书的介绍吧!