MPMoviePlayerController屬性分析

在iOS中播放視頻可以使用MediaPlayer.framework種的MPMoviePlayerController類來完成,它支持本地視頻和網絡視頻播放。這個類實現了MPMediaPlayback協議,因此具備一般的播放器控制功能,例如播放、暫停、停止等。下面列出了MPMoviePlayerController的常用屬性和方法:
屬性
說明
@property (nonatomic, copy) NSURL *contentURL
播放媒體URL,這個URL可以是本地路徑,也可以是網絡路徑
@property (nonatomic, readonly) UIView *view
播放器視圖,如果要顯示視頻必須將此視圖添加到控制器視圖中
@property (nonatomic, readonly) UIView *backgroundView
播放器背景視圖
@property (nonatomic, readonly) MPMoviePlaybackState playbackState
媒體播放狀態,枚舉類型:
MPMoviePlaybackStateStopped:停止播放
MPMoviePlaybackStatePlaying:正在播放
MPMoviePlaybackStatePaused:暫停
MPMoviePlaybackStateInterrupted:中斷
MPMoviePlaybackStateSeekingForward:向前定位
MPMoviePlaybackStateSeekingBackward:向后定位
@property (nonatomic, readonly) MPMovieLoadState loadState
網絡媒體加載狀態,枚舉類型:
MPMovieLoadStateUnknown:位置類型
MPMovieLoadStatePlayable:
MPMovieLoadStatePlaythroughOK:這種狀態如果shouldAutoPlay為YES將自動播放
MPMovieLoadStateStalled:停滯狀態
@property (nonatomic) MPMovieControlStyle controlStyle
控制面板風格,枚舉類型:
MPMovieControlStyleNone:無控制面板
MPMovieControlStyleEmbedded:嵌入視頻風格
MPMovieControlStyleFullscreen:全屏
MPMovieControlStyleDefault:默認風格
@property (nonatomic) MPMovieRepeatMode repeatMode;
重復播放模式,枚舉類型:
MPMovieRepeatModeNone:不重復,默認值
MPMovieRepeatModeOne:重復播放
@property (nonatomic) BOOL shouldAutoplay
當網絡媒體緩存到一定數據時是否自動播放,默認為YES
@property (nonatomic, getter=isFullscreen) BOOL fullscreen
是否全屏展示,默認為NO,注意如果要通過此屬性設置全屏必須在視圖顯示完成后設置,否則無效
@property (nonatomic) MPMovieScalingMode scalingMode
視頻縮放填充模式,枚舉類型:
MPMovieScalingModeNone:不進行任何縮放
MPMovieScalingModeAspectFit:固定縮放比例并且盡量全部展示視頻,不會裁切視頻
MPMovieScalingModeAspectFill:固定縮放比例并填充滿整個視圖展示,可能會裁切視頻
MPMovieScalingModeFill:不固定縮放比例壓縮填充整個視圖,視頻不會被裁切但是比例失衡
@property (nonatomic, readonly) BOOL readyForDisplay
是否有相關媒體被播放
@property (nonatomic, readonly) MPMovieMediaTypeMask movieMediaTypes
媒體類別,枚舉類型:
MPMovieMediaTypeMaskNone:未知類型
MPMovieMediaTypeMaskVideo:視頻
MPMovieMediaTypeMaskAudio:音頻
@property (nonatomic) MPMovieSourceType movieSourceType
媒體源,枚舉類型:
MPMovieSourceTypeUnknown:未知來源
MPMovieSourceTypeFile:本地文件
MPMovieSourceTypeStreaming:流媒體(直播或點播)
@property (nonatomic, readonly) NSTimeInterval duration
媒體時長,如果未知則返回0
@property (nonatomic, readonly) NSTimeInterval playableDuration
媒體可播放時長,主要用于表示網絡媒體已下載視頻時長
@property (nonatomic, readonly) CGSize naturalSize
視頻實際尺寸,如果未知則返回CGSizeZero
@property (nonatomic) NSTimeInterval initialPlaybackTime
起始播放時間
@property (nonatomic) NSTimeInterval endPlaybackTime
終止播放時間
@property (nonatomic) BOOL allowsAirPlay
是否允許無線播放,默認為YES
@property (nonatomic, readonly, getter=isAirPlayVideoActive) BOOL airPlayVideoActive
當前媒體是否正在通過AirPlay播放
@property(nonatomic, readonly) BOOL isPreparedToPlay
是否準備好播放
@property(nonatomic) NSTimeInterval currentPlaybackTime
當前播放時間,單位:秒
@property(nonatomic) float currentPlaybackRate
當前播放速度,如果暫停則為0,正常速度為1.0,非0數據表示倍率
對象方法
說明

  • (instancetype)initWithContentURL:(NSURL *)url
    使用指定的URL初始化媒體播放控制器對象
  • (void)setFullscreen:(BOOL)fullscreen animated:(BOOL)animated
    設置視頻全屏,注意如果要通過此方法設置全屏則必須在其視圖顯示之后設置,否則無效
  • (void)requestThumbnailImagesAtTimes:(NSArray *)playbackTimes timeOption:(MPMovieTimeOption)option
    獲取在指定播放時間的視頻縮略圖,第一個參數是獲取縮略圖的時間點數組;第二個參數代表時間點精度,枚舉類型:
    MPMovieTimeOptionNearestKeyFrame:時間點附近
    MPMovieTimeOptionExact:準確時間
  • (void)cancelAllThumbnailImageRequests
    取消所有縮略圖獲取請求
  • (void)prepareToPlay
    準備播放,加載視頻數據到緩存,當調用play方法時如果沒有準備好會自動調用此方法
  • (void)play
    開始播放
  • (void)pause
    暫停播放
  • (void)stop
    停止播放
  • (void)beginSeekingForward
    向前定位
  • (void)beginSeekingBackward
    向后定位
  • (void)endSeeking
    停止快進/快退
    通知
    說明
    MPMoviePlayerScalingModeDidChangeNotification
    視頻縮放填充模式發生改變
    MPMoviePlayerPlaybackDidFinishNotification
    媒體播放完成或用戶手動退出,具體完成原因可以通過通知userInfo中的key為MPMoviePlayerPlaybackDidFinishReasonUserInfoKey的對象獲取
    MPMoviePlayerPlaybackStateDidChangeNotification
    播放狀態改變,可配合playbakcState屬性獲取具體狀態
    MPMoviePlayerLoadStateDidChangeNotification
    媒體網絡加載狀態改變
    MPMoviePlayerNowPlayingMovieDidChangeNotification
    當前播放的媒體內容發生改變
    MPMoviePlayerWillEnterFullscreenNotification
    將要進入全屏
    MPMoviePlayerDidEnterFullscreenNotification
    進入全屏后
    MPMoviePlayerWillExitFullscreenNotification
    將要退出全屏
    MPMoviePlayerDidExitFullscreenNotification
    退出全屏后
    MPMoviePlayerIsAirPlayVideoActiveDidChangeNotification
    當媒體開始通過AirPlay播放或者結束AirPlay播放
    MPMoviePlayerReadyForDisplayDidChangeNotification
    視頻顯示狀態改變
    MPMovieMediaTypesAvailableNotification
    確定了媒體可用類型后
    MPMovieSourceTypeAvailableNotification
    確定了媒體來源后
    MPMovieDurationAvailableNotification
    確定了媒體播放時長后
    MPMovieNaturalSizeAvailableNotification
    確定了媒體的實際尺寸后
    MPMoviePlayerThumbnailImageRequestDidFinishNotification
    縮略圖請求完成之后
    MPMediaPlaybackIsPreparedToPlayDidChangeNotification
    做好播放準備后
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容