1.計算使用MPMoviePlayerController播放的視頻的長度有兩種方法:ide
第一種方法函數
NSDictionary *opts = [NSDictionary dictionaryWithObject:[NSNumber numberWithBool:NO] forKey:AVURLAssetPreferPreciseDurationAndTimingKey]; ui
AVURLAsset *urlAsset = [AVURLAssetURLAssetWithURL:videoUrloptions:opts]; url
NSInteger totalSecond = urlAsset.duration.value / urlAsset.duration.timescale; spa
使用上述代碼須要插入AVFoundation框架。播過我用這種方法計算視頻長度時,會延遲其後代碼的執行,不知道什麼緣由。.net
第二種方法orm
使用MPMoviePlayerController的duration屬性,當MPMoviePlayerController的duration未知時默認爲0.0,若是duration肯定,會發送MPMovieDurationAvailableNotification通知,接着duration的值將會更新爲播放視頻的長度,單位是秒。視頻
2.視頻何時開始播放blog
當視頻開始播放時會發送MPMediaPlaybackIsPreparedToPlayDidChangeNotification,因此你只須要在註冊
MPMediaPlaybackIsPreparedToPlayDidChangeNotification通知,當接收到此通知說明視頻開始播放。
3.自定義播放器視圖時怎麼自定義聲音控件
使用MPVolumeView控制系統的聲音大小。經過改變MPVolumeView slider的值能夠改變系統的聲音,同時經過調節系統的聲音按鈕,slider的值也會跟着改變。
volumeView = [[MPVolumeView alloc] initWithFrame:CGRectMake(310, 180, 100, 20)];
volumeView.showsVolumeSlider = YES;
[backView addSubview:volumeView];
[volumeView release];
4.經過presentModalViewController調出MPMoviePlayer所在控制器,當經過dismissModalViewController移除控制器時,手機的狀態欄可能會消失。解決辦法:在dismissModalViewController調用函數
movieplayer.controlStyle = MPMovieControlStyleFullScreen;
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, delay * NSEC_PER_SEC), dispatch_get_current_queue(), ^{
[UIApplication sharedApplication].statusBarHidden = NO;
});