MPMoviePlayerController类是一个功能非常强大的类,它可以播放MOV、MP4、MPV、M4V、3GP、MP3、AIFF和M4A,定义起来也非常简单。下面说一下MPMoviePlayerController的简单用法和我使用时出现的问题。
我用的是SDK4.1,现在应该不会有还在用sdk3的骨灰级开发者了吧。
- MPMoviePlayerController *moviePlayer;moviePlayer = [[MPMoviePlayerController alloc] initWithContentURL:要播放文件的URL];moviePlayer.scalingMode = MPMovieScalingModeAspectFill;[moviePlayer.view setFrame:CGRectMake(30, 210, 250, 350)];[moviePlayer.view setBackgroundColor:[UIColor clearColor]];[self.view addSubview:moviePlayer.view];[moviePlayer play];
说明:
1、scalingMode属性决定的是添加的视频播放器的填充方式。
2、请一定要调用moviePlayer.view的setFrame方法,要不然你添加的播放器就会出现只播放声音而没有图像的情况。
3、在设置好moviePlayer的各种属性后,最后不要忘了调用当前view的addSubview方法把moviePlayer.view添加为当前视图的子视图。
4、如果播放的文件是音频文件而不是视频文件,那么播放的时候只有一个播放栏。
可以使用下列样式:MPMovieControlModeDefault 显示播放/暂停、音量和时间控制
MPMovieControlModeVolumeOnly 只显示音量控制
MPMovieControlModeHidden 没有控制器
5屏幕宽高比例
你可以使用下列宽高比值:
MPMovieScallingModeNone 不做任何缩放
MPMovieScallingModeAspectFit 适应屏幕大小,保持宽高比
MPMovieScallingModeAspectFill 适应屏幕大小,保持宽高比,可裁剪
MPMovieScallingModeFill 充满屏幕,不保持宽高比
----------------------------------------------------------http://blog.sina.com.cn/iostang
你的程序可以配置电影播放器在何时候发送通知,包括结束加载内容、技术播放、改变宽高比等。电影播放器会将事件发送到 Cocoa 的通知中心,你可以对其进行配置,指定将这些事件转发到你的应用程序的一个对象。要接收这些通知,需要使用 NSNotificationCenter 类,为电影播放器添加一个观察者(observer):
- NSNotificationCenter* notificationCenter = [NSNotificationCenter defaultCenter];
- [ notificationCenter addObserver:self selector:@selector(moviePlayerPreloadFinish:) name:MPMoviePlayerContentPreloadDidFinishNotification object:moviePlayer ];
- -(void)moviePlayerPreloadDidFinish:(NSNotification*)notification{
- //添加你的处理代码
- }
MPMoviePlayerContentPreloadDidFinishNotification
当电影播放器结束对内容的预加载后发出。因为内容可以在仅加载了一部分的情况下播放,所以这个通知可能在已经播放后才发出。
MPMoviePlayerScallingModeDidChangedNotification
当用户改变了电影的缩放模式后发出。用户可以点触缩放图标,在全屏播放和窗口播放之间切换。
MPMoviePlayerPlaybackDidFinishNotification
当电影播放完毕或者用户按下了Done按钮后发出。