問題タブ [avaudioplayernode]

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 に答える
262 参照

avaudioengine - フェードアウト AVAudioEngine AVAudioPlayerNode

AVAudioEngine と AVAudioPlayerNode を使用して mp3 ファイルをフェードアウトしようとしています。私はそれを把握することはできません。誰でもSwiftで助けてもらえますか?

私はすでにいくつかのことを試しました。すべてが非常にうまく機能しますが、私が望むほどスムーズではありません.

タイマーも試しました(フェードしません):

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

ios - ユーザーがヘッドフォンを切り替えたときに AVAudioPlayerNode 形式を変更する方法

出力デバイスのサンプル レートに基づいて生成される任意のトーンを再生する必要があります。音声を聞くには、有線または無線のヘッドフォンを接続する必要があります。

最新のヘッドフォンは 44100 または 48000 のネイティブ サンプル レートを持つことができるためAVAudioPlayerNode、別のAVAudioFormat. 何もしなくても、オーディオが歪んで聞こえ始めます。ただし、、、、またはをしようとすると、さまざまなデッドロックに直面していattachます。ヘッドフォンを初めて切り替えようとすると実行がロックされることがあります(同時に2つのヘッドフォンが接続されており、SRが44100の汎用ヘッドセットとSRが48000のAirpodsがあります)、まれに、2番目にフリーズします試す。detachconnectdisconnectNodeOutput

これが私のコードです:

「再接続」するために多数のバリアントを試しましたAVAudioEngineが、それらはすべて次のデッドロックに陥りました。

ここに画像の説明を入力

ここに画像の説明を入力

バックグラウンドスレッドに残そうとしましたが、問題ありません。アプリがもう一度使用しようとするとすぐにAVAudioEngine、すべてが動かなくなります。

AVAudioPlayerNodeでは、サンプル レートを更新するためにを再接続する適切な方法はありますか? それとも、ヘッドフォンのネイティブ サンプル レートに依存せず、静的サンプル レートでオーディオ サウンドを正常に鳴らすことは可能でしょうか? 前もって感謝します!