問題タブ [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.
avaudioengine - フェードアウト AVAudioEngine AVAudioPlayerNode
AVAudioEngine と AVAudioPlayerNode を使用して mp3 ファイルをフェードアウトしようとしています。私はそれを把握することはできません。誰でもSwiftで助けてもらえますか?
私はすでにいくつかのことを試しました。すべてが非常にうまく機能しますが、私が望むほどスムーズではありません.
タイマーも試しました(フェードしません):
ios - ユーザーがヘッドフォンを切り替えたときに AVAudioPlayerNode 形式を変更する方法
出力デバイスのサンプル レートに基づいて生成される任意のトーンを再生する必要があります。音声を聞くには、有線または無線のヘッドフォンを接続する必要があります。
最新のヘッドフォンは 44100 または 48000 のネイティブ サンプル レートを持つことができるためAVAudioPlayerNode
、別のAVAudioFormat
. 何もしなくても、オーディオが歪んで聞こえ始めます。ただし、、、、またはをしようとすると、さまざまなデッドロックに直面していattach
ます。ヘッドフォンを初めて切り替えようとすると実行がロックされることがあります(同時に2つのヘッドフォンが接続されており、SRが44100の汎用ヘッドセットとSRが48000のAirpodsがあります)、まれに、2番目にフリーズします試す。detach
connect
disconnectNodeOutput
これが私のコードです:
「再接続」するために多数のバリアントを試しましたAVAudioEngine
が、それらはすべて次のデッドロックに陥りました。
バックグラウンドスレッドに残そうとしましたが、問題ありません。アプリがもう一度使用しようとするとすぐにAVAudioEngine
、すべてが動かなくなります。
AVAudioPlayerNode
では、サンプル レートを更新するためにを再接続する適切な方法はありますか? それとも、ヘッドフォンのネイティブ サンプル レートに依存せず、静的サンプル レートでオーディオ サウンドを正常に鳴らすことは可能でしょうか? 前もって感謝します!