Just My Life & My Work

最近一直在研究MPMoviePlayerController,才發現內建的功能不是很完全,若要做到令人滿意的境界,只有客制化一途~

Register observer when player finishes displaying

這裡就是註冊觀察者來偵測播放狀態改變時要執行的動作。那裡是註冊觀察者來偵測播放結束時要執行的動作

/**
 Theme: Register Observer when Playback State Did Change
 IDE: Xcode 5
 Language: Objective C
 Date: 102/12/19
 Author: HappyMan
 Blog: https://cg2010studio.wordpress.com/
 */
// .h file
    MPMoviePlayerController *moviePlayerController;
// .m file
    //使用Observer製作播放狀態改變時要執行的動作
    [[NSNotificationCenter defaultCenter] addObserver:self
                                             selector:@selector(moviePlaybackStateDidChange:)
                                                 name:MPMoviePlayerPlaybackStateDidChangeNotification
                                               object:moviePlayerController];

-(void)moviePlaybackStateDidChange:(NSNotification *)notification
{
    MPMoviePlaybackState playbackState = [moviePlayerController playbackState];

    switch (playbackState) {
        case MPMoviePlaybackStateStopped:
            ;
            break;
        case MPMoviePlaybackStatePlaying:
            ;
            break;
        case MPMoviePlaybackStatePaused:
            ;
            break;
        case MPMoviePlaybackStateInterrupted:
            ;
            break;
        case MPMoviePlaybackStateSeekingForward:
            ;
            break;
        case MPMoviePlaybackStateSeekingBackward:
            ;
            break;
        default:
            break;
    }
}

一共可以偵測到六種狀態,我以為最後兩種就是我要的tap動作前進和後退,但事實上是long press動作前進和後退。查了StackOverflow有經驗的人說無法做到⋯⋯

還發現iOS 6和iOS 7在的前進在tap動作後,前者居然沒有反應⋯⋯

參考:iOS 7 MPMoviePlayerController seek forward button brings the video to the End and displays Black screen

隨意留個言吧:)~

這個網站採用 Akismet 服務減少垃圾留言。進一步了解 Akismet 如何處理網站訪客的留言資料

標籤雲