1

これは非常に基本的なことのように思えますが、曲の終了時に関数を実行するにはどうすればよいでしょうか? 一度に 1 つのアイテムを再生していますが、終了したとき (または、可能であれば終了の 10 秒前) に、Web サービスから次の曲を取得する関数を呼び出したいと考えています。

通知で処理されていると思いますMPMusicPlayerControllerPlaybackStateDidChangeNotificationが、よくわかりません。念のため、この通知は曲が終了したとき (一時停止していないとき) にのみ行う必要があります。

私が持っているのはこれだけです。これは、上記のオブザーバーの関数です。

- (void) handle_PlaybackStateChanged: (id) notification
{
    MPMusicPlaybackState playbackState = [musicPlayer playbackState];
}

曲が終了したかどうかを確認するにはどうすればよいですか? また、曲の残り時間が10秒になったときにオブザーバー/関数を作成することは可能ですか?

4

1 に答える 1

3

通知を受け取ったら、MPMusicPlayerController の PlaybackState プロパティを調べることができます

曲の終了 10 秒前に関数を実行する場合、曲の長さから 10 秒を引いた時間に基づいて将来実行するタイマーを設定できます。ユーザーが を変更しplaybackStateたり、別のタイマーを選択した場合は、そのタイマーをキャンセルする必要があります。歌。

于 2013-08-28T20:37:12.953 に答える