9

を使用しMPMoviePlayerControllerていますが、ユーザーがシーク コントロールを操作したときではなく、ムービーが実際に再生を開始したときを検出するにはどうすればよいですか?

私が行ったテストから、私は常に「ロード状態の変更」イベントを取得し(moviePlayer.loadState == MPMovieLoadStatePlayable)TRUEムービーが開始され、ユーザーがシーク コントロールをドラッグした後 (ムービーの最初から最後までドラッグした場合でも) . movie-start と seek を区別するにはどうすればよいですか?

4

2 に答える 2

1

スイフト用

オブザーバーを追加

let defaultCenter: NSNotificationCenter = NSNotificationCenter.defaultCenter()
defaultCenter.addObserver(self, selector: "moviePlayerPlaybackStateDidChange:", name: MPMoviePlayerPlaybackStateDidChangeNotification, object: nil)

関数

func moviePlayerPlaybackStateDidChange(notification: NSNotification) {
        let moviePlayerController = notification.object as! MPMoviePlayerController

        var playbackState: String = "Unknown"
        switch moviePlayerController.playbackState {
        case .Stopped:
            playbackState = "Stopped"
        case .Playing:
            playbackState = "Playing"
        case .Paused:
            playbackState = "Paused"
        case .Interrupted:
            playbackState = "Interrupted"
        case .SeekingForward:
            playbackState = "Seeking Forward"
        case .SeekingBackward:
            playbackState = "Seeking Backward"
        }

        print("Playback State: %@", playbackState)
    }
于 2016-05-11T12:50:51.790 に答える