問題タブ [audiosession]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
959 参照

iphone - AudioSessionInterruptionListener を変更または無効にする方法

AudioSession が初期化された後に AudioSessionInterruptionListener を変更または無効にする方法が必要です。

理由は次のとおりです。一部のユース ケースでは、オーディオ録音を使用してアプリをバックグラウンドで実行する必要があるため、オーディオ バックグラウンド モードが設定されています。これは機能します。呼び出しやその他の割り込みが発生した場合、他のオブジェクトに記録を完全に停止するように通知する必要があります-これは機能します。次に、呼び出した AudioSession でアプリが完了すると、AudioSessionSetActive(false);これが機能します (セッションがアクティブな状態でアプリがバックグラウンドに送信されると、上部に赤いバーが表示されます。セッションが非アクティブな場合、赤いバーは表示されません。ただし、技術的には、アプリはまだ「アクティブな」バックグラウンド モードになっていると思います)。

でも!録音が完了し、アプリがバックグラウンドに送信され、オーディオ セッションが既に非アクティブ化されている場合、通話が着信した場合、または Siri がアクティブ化された場合でも、アプリは AudioSessionInterruptionListener コールバックを受け取ります。はい、コードを追加して、アプリが現在割り込みに応答しているかどうかをテストできます。ただし、これはバグだと思います。AudioSession を無効にすると、割り込みの呼び出しが停止するはずです。実際、すべてのオーディオ セッション/プロパティ リスナーの呼び出しが停止するはずです。

AudioSessionInterruptionListener を変更または無効にするにはどうすればよいですか? または、これを尋ねる別の方法かもしれませんが、アプリが必要のないときにバックグラウンド モードを「使用」しないようにするにはどうすればよいですか?

追加情報

さて、iOS 6 では AudioSession 割り込み用の NSNotifications があるようです:AVAudioSessionDidBeginInterruptionNotificationAVAudioSessionDidEndInterruptionNotification. ただし、iOS 5.1 以降をサポートしているため、これは役に立ちません。そして、私が新しい通知を見つけた同じドキュメントは、Obj-C インターフェイス AVAudioSession のデリゲート プロパティが (IOS 6 で) 減価償却されていることを示しているため、おそらくそれを使用してデリゲートを設定/変更するべきではありません (そして Obj を取得します)。 -C 割り込みコールバック)。

考えられる回避策は、iOS バージョンをテストし、6.0 未満でデリゲートを設定および設定解除し、6.0 以降で NSNotifications をリッスンすることだと思います (これは 6.0 未満では表示されないため、壊れてはなりません)。ただし、これはおかしなことのようです。

0 投票する
0 に答える
187 参照

iphone - OpenALの使用中にAudioSessionを「ダック」することは可能ですか?

これが可能かどうか誰にもわかりますか?

オーディオ セッションと OpenAL を次のようにセットアップしています。

そして、私は次のようなダッキング設定をしています:

ただし、音はしません。次の行をコメントアウトした場合にのみダックします。

オーディオダッキングプロパティでOpenALをうまく機能させる方法はありますか?

0 投票する
0 に答える
285 参照

ios - iOSで異なるオーディオユニットからのサウンドをミックスする方法は?

私は、VoIP を備えていると同時に税関の音をレンダリングするアプリケーションを持っています。

VoIP オーディオ ユニットは次のように設定されます。

サウンドをレンダリングするものは次のとおりです。

両方のサウンド (ボイスとカスタム サウンド) をミックスしているときに問題が発生しました。レンダリングされたサウンドは、音声が開始されたときに (現在ミュートされている場合でも) 低い音量で再生されます。レンダリングされた単独で再生されるサウンドと、VoIP 通話中の同じサウンドを比較すると、結果は 13 dB 低くなります。

ありがとう、レオ。

0 投票する
4 に答える
2329 参照

ios - AVAudioPlayer がバックグラウンドで再生を開始しない

私はオーディオストリーミングを行うためにAVAudioPlayerandを使用しています。NSFileHandle基本的な考え方は、ストリーミング オーディオ データをファイル システムを使用してデバイスに保存し、AVAudioPlayer保存したばかりのファイルを再生するために使用することです。 AVAudioPlayerストリーミング中でもそのファイルを再生できます。

UIButtonストリーミング/ダウンロードを開始する必要があります。ダウンロードしたデータが一定のBytesまで蓄積されると、自動的に再生されAVAudioPlayerます(の"play"メソッドAVAudioPlayerがトリガーされます)。私の質問は、ボタンをタップしてストリーミング/ダウンロードを開始し、すぐに iPhone のホームボタンを押してアプリをバックグラウンドにすることです。ダウンロードはバックグラウンドで実行され続けますが、"play" メソッドAVAudioPlayerは "NO" を返します。これは、"play" メソッドがオーディオを再生しないことを意味します。

AVAudioSession関連するコードをオーディオ プレーヤーの init メソッドに追加しました。

また、info.plist で、キー「必要なバックグラウンド モード」に「アプリがオーディオを再生」という項目を追加しました。ただし、「再生」はまだバックグラウンドで適切に呼び出されません。私は他に何を逃したのですか?よろしくお願いします。

0 投票する
1 に答える
1854 参照

ios - iOSオーディオ出力はヘッドフォンジャックのみ

iOS デバイスのヘッドフォン ジャックだけにオーディオを出力し、それ以外の場所にはオーディオを出力しないことはできますか? (例: スピーカーや Bluetooth ではありません)

オーディオ ジャックからトーンとして入力を受信するハードウェア アドオンを実験しています。ヘッドフォン ジャックが接続されているかどうかを検出することもできますが、Bluetooth オーディオ出力デバイスが接続されている場合は依然として問題が残ります。ユーザーの Bluetooth ヘッドセットやスピーカーでトーンが聞こえないようにする必要があります。

0 投票する
1 に答える
413 参照

core-audio - AudioSessionSetActive(false) は常に失敗します

AudioSessionSetActive(false)「シャットダウン」コードでの呼び出しが noErr を返さないことがわかりました。(OSStatus) 803204036リストされた戻りコードのいずれにも対応しない、の ような文書化されていないコードがいくつかあります。

そして、関連するすべてのリストされた Xcode サンプルコードを調べましたAudioSessionSetActive()が、「false」引数を使用した呼び出しはまったく見つかりませんでした。すべてのサンプルはAudioSessionSetActive(true)、さまざまなシナリオで呼び出すだけです。サンプルは次のとおりです。

AudioSessionSetActive()それは、自分自身を falseで呼び出してはいけないということですか? 非アクティブ化が暗黙的に処理されるということですか?

0 投票する
1 に答える
455 参照

objective-c - [AVAudioSession sharedInstance] をキャンセルするにはどうすればよいですか。

現在、使用しているオーディオセッションがあります

audioSession = [AVAudioSession sharedInstance];

リンガーをオーバーライドするには、オーディオ セッションが共有インスタンスにならないように、これを元に戻す方法があるかどうかを知りたいです。