xcode で音楽プレーヤー アプリを作成しようとしていますが、プレイリスト (別名、音楽プレーヤー キュー) を変更するときに問題が発生します。プレイリストで何かを変更するときはいつでも(つまり、曲を追加したり、曲の順序を変更したり、「次へ」ボタンを押したりしたときなど)、常に次の2行のコードを実行する必要があるようです。
[self.musicplayer play];
[self.musicplayer pause];
どうやら、音楽プレーヤーは、「再生」コマンドを送信したときにのみ実際に変更を登録します。その直後に、曲の再生が実際に開始されないように、「一時停止」を送信する必要があります。
これらのコード行がなければ、(とりわけ) 次の問題が発生します。たとえば、「1」から「6」までの名前の 6 つの曲があるとします。曲 1 が再生されていましたが、一時停止しました。次に、「次へ」ボタンを 3 回押すと、次のコードが実行されました (3 回)。
[self.musicPlayer skipToNextItem];
したがって、私の論理では、音楽プレーヤーは現在再生中の曲として曲番号 4 を持っている必要があります。しかし、再生を押すと、「次へ」を押したことに気付かなかったかのように、曲番号 1 の再生が開始されました。
上記のように、再生と一時停止を指示することでしか問題を解決できませんでしたが、控えめに言っても、それは非常に醜い解決策でした。また、場合によっては、処理する前に iPod が曲の最初の数秒を再生し、すぐに一時停止する必要がありました。
誰も私がこれを行うべき正しい方法を知っていますか?
Xcode 4.2.5 プレビューを使用しており、ios 6 を搭載した iphone 4s でテストしています。