Just a Computer Graphics Studio & My Life

最近一直在研究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

廣告

發表留言

在下方填入你的資料或按右方圖示以社群網站登入:

WordPress.com Logo

您的留言將使用 WordPress.com 帳號。 登出 / 變更 )

Twitter picture

您的留言將使用 Twitter 帳號。 登出 / 變更 )

Facebook照片

您的留言將使用 Facebook 帳號。 登出 / 變更 )

Google+ photo

您的留言將使用 Google+ 帳號。 登出 / 變更 )

連結到 %s

標籤雲

%d 位部落客按了讚: