問題タブ [audioqueueservices]

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

iphone - Iphone のストリーミングと再生のオーディオの問題

ffmpeg、libmms を使用してオーディオ ストリームを再生するアプリを作成しようとしています。
mms サーバーを開き、ストリームを取得し、適切なコーデックを使用してオーディオ フレームを生のフレームにデコードできます。
ただし、次にどうすればよいかわかりません。
私はAudioToolbox/AudioToolbox.haudioqueue を使用して作成する必要があると思います。
ただし、audioqueuebuffer デコード バッファのメモリを指定して再生すると、ホワイト ノイズのみが再生されます。
これが私のコードです。

私は何が欠けていますか?
コメントやヒントは大歓迎です。
どうもありがとう。

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

macos - Macでのマルチチャネルリアルタイムオーディオ処理用のオーディオキュー

外部オーディオインターフェイス(RME Fireface)を介してiMacに接続された4つのマイクアレイがあります。4つすべてから同時に録音し、個々の信号を取得し、いくつかの操作を実行し、出力音を再生する必要があります。これらはすべてリアルタイムで行われます。

まず、Macシステム環境設定のオーディオ入力には、4つの個別のデバイスではなく、1つのRMEFireFaceのみが表示されます。それでは、各マイクのポートアドレスを見つけるにはどうすればよいですか?

第二に、主な質問-この目的でオーディオキューを使用できますか?オーディオキューのドキュメントには、マルチチャネルオーディオ入力と信号処理に関する明確な情報がありません。

0 投票する
3 に答える
684 参照

iphone - AudioQueueServices による同時再生 (10 以上)

これがiPhoneでどのように行われるかを誰かに教えてもらえますか? 約 12 のサウンドを同時に再生するゲームを作成しようとしていますが、AudioQueueServices の使用方法がわかりません。初期化、バッファの追加、再生、AudioQueueEnqueueBufferWithParameters を使用して同時再生を行う必要があることは理解していますが、それをコードに変換する方法がわかりません。これに関するコードを持っている人、または私に説明できる人は素晴らしいでしょう!

トーン グリッド/トーン ボードについて聞いたことがあるなら、まさに私がやろうとしていることです。Appstore にはすでにこれを行うアプリがいくつかあることは知っていますが、それがどのように行われるかはわかりません。

TLDR; 10 以上のサウンドを使用した AudioQueueServices の同時再生についてサポートが必要です。

例:

新しい再生

エンキュー バッファ

再生を開始する

ストリーム形式フィールドの設定

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

iphone - AVAssestReader 停止オーディオ コールバック

だから私はオーディオセッションをセットアップします

次に、AudioQueue または RemoteIO セットアップをセットアップして、ファイルからオーディオを直接再生します。

オーディオが再生されると、アプリのステータス バーに「再生アイコン」が表示されます。次に AVAssetReader をセットアップします。

[reader startReading] を呼び出すと、Audio の再生が停止します。RemoteIO と AudioQueue の両方のケースで、コールバックが呼び出されなくなります。

混合オプションを追加すると:

その後、AudioQueueStart の後のオーディオが呼び出されたときに、「再生アイコン」が表示されなくなりました。電話は私を主要なオーディオ ソースとして認識しないため、他の機能もロックアウトされています。

AVAssetReader を使用してプライマリ オーディオ ソースのままにする方法を知っている人はいますか?

0 投票する
2 に答える
3382 参照

iphone - AudioQueueOutputCallbackが呼び出されないのはなぜですか?

私はAudioQueueServices APIを使用して、iPhoneのTCPソケット接続を介してサーバーからストリーミングされたオーディオを再生しています。ソケット接続から満たされたバッファーを再生できますが、AudioQueueにAudioQueueOutputCallback関数を呼び出させることができないようで、アイデアがありません。

ハイレベルなデザイン

  1. データはソケット接続からプレーヤーに渡され、メモリ内の循環バッファにすぐに書き込まれます。
  2. AudioQueueBuffersが使用可能になると、データは循環バッファーから使用可能なAudioQueueBufferにコピーされ、すぐに再キューイングされます。(または、私のコールバックが発生した場合)

何が起こるのですか

バッファはすべて正常にいっぱいになり、キューに入れられ、オーディオストリームがはっきりと聞こえます。テストでは、多数のバッファー(15)を使用し、それらすべてがシームレスに再生されますが、AudioQueueOutputCallbackが呼び出されることはないため、すべてが完全に機能しているように見えても、これらのバッファーを再キューイングすることはありません。コールバックが呼び出されないことを前提として、コールバックを待たずに、書き込まれたデータに基づいてバッファーのエンキューを駆動すると、オーディオストリームを無期限に再生し、バッファーを再利用して再エンキューすることができます。コールバックによって明示的に返されていました。その事実です。必要に応じてバッファを再利用しながらストリームを完全に再生できるため、最も混乱します。コールバックが呼び出されないのはなぜですか?

おそらく関連するコード

ストリームのフォーマットは、16ビットリニアPCM、8 kHz、モノラルです。

私のプロトタイプとコールバックの実装は次のとおりです。派手なものはなく、これまでに見たすべての例とほとんど同じです。

次のようにAudioQueueを作成します。

そして、私はこのようにバッファをエンキューします。この時点で、ローカルバッファにはコピー用の正しい量のデータが含まれていることがわかります。

私を救ってください。

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

iphone - AudioQueue サービスを使用した MP3 データ バッファの再生: プライムに失敗しました (-50)

最近、iPhone で AudioQueue Service を使用してネットワーク オーディオ ストリーム (MP3 パケット形式) を再生する方法を見つけるのに苦労していました。

この目標を連続して達成するために、まず AudioQueue を使用して再生する一般的なローカル MP3 ファイルを取得しました。次に、AudioFileReadPackets を stdio 関数 fread に置き換え、ネットワークからのオーディオ ストリームをシミュレートするために、AudioFileReadPackets と同じ量の mp3 パケットを fread するたびに行いました。ただし、今回は次のエラーが発生しました。

この「Prime failed (-50)」エラーの原因を知っている人はいますか? 助けて zzzzzzz

****************************************************** ****************************************************** ****************************************************** **************** .

差し替え作業で何をしたかを説明するために、コードの主な変更部分を示したいと思います。「差し替え前」と「差し替え後」の 2 つの部分があります。

  1. 置換前 (ローカル MP3 ファイルを再生):

1) オーディオ キューのランループ コールバック

2) 音声ファイルを開く

3) オーディオ キューを作成する

2. 置き換え後 (playbak mp3 data buffer get by fread):

コードの移植をスムーズにするために、pAqData->bufferByteSize、pAqData->mNumPacketsToRead、pAqData->mDataFormat などの重要な変数の実行時の値をコピーしました。そして、置き換えられたコードでコピーされた値を使用して、これらの変数を直接初期化します。この動作の目的は、AudioToolbox フレームワークのインターフェイス (AudioFileOpenURL、AudioFileGetProperty、AudioFileReadPackets など) の呼び出しを破棄することです。その後、stdio 関数 fread を使用して mp3 パケットを直接取得できます。変更されたコードを以下に示します。

1) オーディオ キューの runloop コールバック (前のコードでは、AudioFileReadPackets は 338 パケットを読み取り、合計 129792 バイトでした。これらの値を置き換えたコードに直接コピーしました)

2) オーディオ ファイルを開きます (AudioFileOpenURL の代わりに fopen を使用します)。

3) オーディオ キューを作成します (ローカル MP3 再生モードで割り当てられた値で pAqData->mDataFormat を直接初期化します)。

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

iphone - AVPlayerオブジェクトのAudioQueueLevelMeterState

キューからAudioQueueLevelMeterStateのようなオブジェクト、またはチャンネル番号、サブレベルメーターに関する情報を抽出して、サウンドの再生中にシーンに素敵なアニメーションを描画できるため、AVPlayerからキューを抽出することは可能ですか?

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

iphone - Audio Queue で NSData(bytes) を再生するには?

オーディオ キュー サービスで [NSData バイト] を再生する方法、speakHere の例から、バイトは AudioFile からのトークンですが、インターネットからサウンドをダウンロードしているので、キュー サービスで再生する必要があります。次のようなパラメーターを試しました:

コールバックは機能していますが、残念ながらバッファにバイトを設定できません:

inCompleteAQBuffer は AudioQueueBufferRef タイプです。助けてください ...

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

iphone - Audio Queue Services を使用して録音されたオーディオをデータに

あるiPhoneから別のiPhoneに音声を送信したい。TCP を使用して 2 台の iPhone 間の接続を確立し、iPhone で音声を録音して Audio Queue Services を使用して再生することができました。また、2 台の iPhone 間でデータを送信することもできました。これを行うには、NSData パッケージを送信します。

次のステップは、録音中の音声データを他の iPhone に送信することです。でこれを行うべきだと思いますAudioInputCallback。MyAudioQueueBufferRefが呼び出され、 を NSDatainBufferに変換してinBuffer->mAudioDataから、NSData を他のデバイスに送信してからアンパックしたいようです。

これがそれを行う方法であるかどうか、そしてどのように私inBuffer->mAudioDataをNSDataに変換できるかを知っている人はいますか? 他のアプローチも歓迎します。

これは、データを「取得」して他の iPhone に送信する必要があると思われるコールバック メソッドです。

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

macos - mp3 のコア オーディオ AudioStreamBasicDescription の妥当な値のセットは何ですか?

Apple の AudioQueueTool サンプル プログラムに基づいて、オーディオを mp3 に録音しようとしています。ただし、AudioQueueNewInput を使用して Audio Queue を作成しようとすると、エラー 1718449215 が返されます。これは、Apple のドキュメントによると、「再生データ形式はサポートされていません」という意味です My AudioStreamBasicDescription はこのように設定されています

IOS の他の似たような質問を見てきましたが、その答えは、IOS のバージョンの Core Audio は mp3 の録音をサポートしていないというものでした。これは Mac にも当てはまりますか? どんな助けでも大歓迎です。