0

iPod ミュージック プレーヤーを使用して iPod ミュージック ライブラリからメディア アイテムを再生するオーディオ アプリケーションを作成しています。

これで、iPod がバックグラウンドにあるときに再生を続けることができることがわかりましたが、バックグラウンドで Thread または Timer を実行して、セレクター メソッドが音楽プレーヤーの状態を定期的にチェックして、アプリは、トラック間に遅延を適用するためにルールを適用し、バックグラウンドで常に新しいメディア コレクションをプレーヤーに自動的にロードできます。

これは可能ですか?

そうでない場合、この機能を実現する他の方法はありますか?

4

3 に答える 3

1

秘訣はMPMusicPlayerController、アプリがバックグラウンドに入るときに実際にiPodアプリへの制御を放棄するので使用しないことです(これは、アプリを閉じてiPodアプリを開くことで確認できます)。

AVAudioSession現在開発中の音楽アプリでは、and AVPlayerではなく )を使用して自分の音楽プレーヤーをロールバックしましたAVAudioPlayer。プレーヤーにキューを実装し、キューにフィードするデータソース(に似ています)を実装しました。 UITableViewDatasourceこれらはすべて、バックグラウンドで実行している間は雄弁に機能し、iPodアプリとは何の関係もありません(追加のボーナスとして、アプリアイコンがマルチタスクバーのリモコンの横に表示されます)。

同様の何かを開発した場合、キュー内の次のアイテムをデータソースに要求するときに、ルールセットをクエリして、次に何をするかを決定できます。

于 2011-08-19T12:29:52.377 に答える
0

もちろん。これは、アプリケーション デリゲートのapplicationDidEnterBackground:.

テンプレートから:

アプリケーションがバックグラウンド実行をサポートしている場合、ユーザーが終了すると applicationWillTerminate: の代わりにこのメソッドが呼び出されます。

于 2011-08-19T10:48:31.357 に答える
0

NSTimerはい、現在、無効になっているため使用できません。コードのブロックを開始して GCD 経由で実行し、バックグラウンドで実行することができます。実行時間10分。

于 2011-08-19T10:51:40.310 に答える