“MPMoviePlayerController”的“initialPlaybackTime”不起作用
Posted
技术标签:
【中文标题】“MPMoviePlayerController”的“initialPlaybackTime”不起作用【英文标题】:"initialPlaybackTime" of "MPMoviePlayerController" is not working 【发布时间】:2014-08-07 16:02:46 【问题描述】:我正在尝试使用 MPMovieplayercontroller 播放电影。除了“initialPlaybackTime”之外,一切都很好。玩家不是从给定的秒数开始播放,而是从头开始播放。
如何让“initialPlaybackTime”工作?
-(void)viewDidLoad
[super viewDidLoad];
NSString *moviePath= [[NSBundle mainBundle] pathForResource:@"02_Skater" ofType:@"mp4"];
NSURL *url = [NSURL fileURLWithPath:moviePath] ;
// video player
playerViewController = [[MPMoviePlayerController alloc] init];
playerViewController.contentURL = url;
playerViewController.view.frame = CGRectMake(0, 200, 300, 300);
playerViewController.scalingMode = MPMovieScalingModeAspectFit;
playerViewController.initialPlaybackTime = 3;
playerViewController.endPlaybackTime = 4;
playerViewController.controlStyle=MPMovieControlStyleNone;
[playerViewController prepareToPlay];
[playerViewController play];
[[self view] addSubview: [playerViewController view]];
// Do any additional setup after loading the view, typically from a nib.
【问题讨论】:
任何人的任何意见? 谁能帮帮我? 【参考方案1】:如果您查看 Apple 文档,您可以阅读:
“对于视频点播内容,播放从距提供时间最近的片段边界开始。”
【讨论】:
感谢您的评论。是的,但无论我为“initialPlaybackTime”设置的值如何,它总是以“零时间”开始。 VOD 与播放静态 MP4 视频文件有什么关系?【参考方案2】:ios 8.4 之后的新更新存在这些问题,而这些错误在新的 iOS 9.0 中仍然存在
目前我发现了一个仍然不完整的解决方法,因为您仍然无法设置视频的结束时间。这个解决方案如何让您设置“initialPlaybackTime”
首先向你的 mediaPLayer 添加一个观察者
//Add Observer
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(moviePlayerPlaybackStateChanged:)
name:MPMoviePlayerPlaybackStateDidChangeNotification
object:mediaPlayerController];
并为通知编写此方法
BOOL playbackDurationSet=NO;
-(void)moviePlayerPlaybackStateChanged:(NSNotification*)notification
MPMoviePlayerController* player = (MPMoviePlayerController*)notification.object;
switch ( player.playbackState )
case MPMoviePlaybackStatePlaying:
if(!playbackDurationSet)
[mediaPlayerController setCurrentPlaybackTime:player.initialPlaybackTime];
playbackDurationSet=YES;
break;
default:
break;
-(void)resetPlayerDurationVar
playbackDurationSet=NO;
【讨论】:
以上是关于“MPMoviePlayerController”的“initialPlaybackTime”不起作用的主要内容,如果未能解决你的问题,请参考以下文章
如何显示 MPMoviePlayerController 控件?
MPMoviePlayerController 隐藏 AirPlay 按钮
MPMoviePlayerController 上的专辑封面
MPMoviePlayerController 已弃用,现在怎么办?