7

私のアプリがバックグラウンドで起きたが、最前線ではない(重要なロケーションの変更のように、店内の他のアプリがこれを実行しているのを見て、それが可能であることを知っている)の後でkAudioSessionCategory_RecordAudioを起動しようとしている。私はそうバックグラウンドで録音iOSオーディオセッションを開始するにはどうすればよいですか?

CheckError(AudioQueueStart(queue, NULL), "AudioQueueStart failed");

などのオーディオセッションを起動しようとするたびにしかし、私はこのエラーを取得する:

Error: AudioQueueStart failed (-12985)

だから私はそれをよく読んでしか提案がアクティブにオーディオセッションを設定していますAudioSessionSetActive(YES)でも、これはエラー'!cat'で失敗します。どうやら、あなたはオーディオセッションのアクティブな状態を切り替えることができますが、それは私のために働いていない。

オーディオバックグラウンドモードのplistフラグが設定されていて、自分のアプリが最前面にある間にオーディオセッションを開始し、別のアプリケーションに切り替える(赤いバーが表示されていることを示す)。アプリが最前線ではない間にオーディオセッションを開始するだけで問題になります。

誰でもサンプルプロジェクト私はバックグラウンドで録音オーディオセッションを開始することを見てみることができますか?

注:ファイルではなくバッファでオーディオを必要とするため、オーディオキューを使用するソリューションを探しています。

答えて

4

いくつかの変更を加えたAppleのSpeakHereサンプルコードでは、オーディオマルチタスクフラグをinfo.plistに追加し、適切な重要なロケーション変更APIを追加するだけで、バックグラウンドでオーディオの録音が開始されることが判明しました。アップルがそれをしばらく更新していないので、あなたはSpeakHereのアップデート版のためにhttps://github.com/benvium/SpeakHereを見るかもしれません。

+0

オーディオマルチタスクフラグは正確に何ですか?説明してください – Nil

-1

現在のところ、iOSではオーディオセッションや音声録音をバックグラウンドで開始できません。アプリケーションはフォアグラウンドでオーディオを開始する必要がありますが、必要なまで録音されたオーディオデータを破棄することができます。これは適切なバックグラウンドモードとオーディオセッションを使用しているときにバックグラウンドになる可能性があります。

+2

GPSナビゲーションのようなアプリが現在方向を話していない状況で、ユーザーが音楽アプリに切り替えて音楽を再生すると、GPSナビゲーションアプリが新しい方向を話すまで音楽アプリが引き継ぎますスピーカーをもう一度。あなたのアプリがバックグラウンドにある間に再生を開始できれば、録画を開始することができます。 – audioBackgrounder

+0

@ hotpaw2、「スリープトークレコーダー」のライブアプリは完璧に動作し、バックグラウンドで一日を記録するのをサポートします。だから、バックグラウンドで1日中記録できる方法があるはずです。ここにライブアプリのリンケージがあります:https://itunes.apple.com/en/app/sleep-talk-recorder/id391767653?mt=8 – Jacky

+0

おそらく、これらのアプリはフォアグラウンドでバックグラウンドに入る前に音声セッションを可能にします一日中。 – hotpaw2

関連する問題