26

OpenFrameworks を使用して iOS 用のジェネレーティブ ミュージック システムを設計する場合、次の場合に、ユーザーがアプリケーションによって生成された音楽を聴くことができるモードを提供する必要があります。

  • デバイスがロックされています
  • ユーザーが別のアプリケーションを使用している

BLOOM や目覚まし時計などの一部のアプリケーションは、そのように機能し、この機能を有効/無効にするスイッチをユーザーに提案します。

そのためのヒントはありますか?

4

6 に答える 6

35

バックグラウンドオーディオの再生

オーディオを継続的に再生または録音するアプリ(アプリがバックグラウンドで実行されている場合でも)は、バックグラウンドでこれらのタスクを実行するために登録できます。Xcodeプロジェクトの[機能]タブの[バックグラウンドモード]セクションからオーディオサポートを有効にします。(アプリのInfo.plistファイルのオーディオ値にUIBackgroundModesキーを含めることで、このサポートを有効にすることもできます。)バックグラウンドでオーディオコンテンツを再生するアプリは、無音ではなく可聴コンテンツを再生する必要があります。

Appleリファレンス「バックグラウンドオーディオの再生と録音」

画面がロックされてもオーディオが継続することを確認する

この機能を有効/無効にするために、オーディオセッションのアクティブ化と非アクティブ化を見つけました。自分で試したことはありませんが、必要なもののようです。

于 2012-05-03T13:33:20.020 に答える
29

plistファイルにいくつかの変更を加える必要があります。

すなわち1)アプリがオーディオを再生するように必要なバックグラウンドモードを設定します

2)アプリケーションがバックグラウンドで実行されないをNOに設定します。

 NSError *setCategoryErr = nil;
 NSError *activationErr  = nil;
 [[AVAudioSession sharedInstance] setCategory: AVAudioSessionCategoryPlayback error:&setCategoryErr];
 [[AVAudioSession sharedInstance] setActive:YES error:&activationErr];

次に、AppDelegateでこれらの多くのコードを記述する必要があります

これで、電話の画面がロックされているときやバックグラウンドになっているときに、オーディオを簡単に実行できます。

于 2013-02-01T07:21:16.203 に答える
1

このチュートリアルを見てください。バックグラウンドサービスの例がいくつかあります

http://www.raywenderlich.com/29948/backgrounding-for-ios

于 2015-11-18T07:43:06.457 に答える
-2

また、次のコードを使用できます。

AVAudioSession *session = [AVAudioSession sharedInstance];
[session setCategory:AVAudioSessionCategoryPlayback error:NULL];

AVAudioSession *backgroundMusic = [AVAudioSession sharedInstance];

[backgroundMusic setCategory:AVAudioSessionCategoryPlayback error:NULL];
于 2013-05-23T08:39:01.070 に答える