問題タブ [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 投票する
2 に答える
265 参照

ios - iPhone iOS でオーディオを再生中に複数のファイル間をスキップする

プロジェクトでは、iPhone アプリで非常に特別なオーディオを処理する必要があり、誰かが私を正しい方向に向けてくれることを願っています。

同じ長さ (2 ~ 3 秒、非圧縮) の最大 30 個のオーディオ ファイルの固定セットがあるとします。キューが 1 つのオーディオ ファイルから再生されている間、前のオーディオ ファイルの再生が終了したのと同じタイムスタンプから、別のオーディオ ファイルから再生を継続させるパラメータを更新できる必要があります。異なるオーディオ ファイルが重度にフィルタリングされたオーディオの異なるバージョンである場合、それらの間を「スライド」して、フィルタを直接適用したような印象を受けることができるはずです。現時点では、フィルタリングを iPhone でリアルタイムに実現することはできないため、事前にレンダリングされたファイルです。

AB と C が異なるオーディオ ファイルの場合、次のことができるようにしたいと考えています。

中断せずに A を再生します。

スタート あああああああああ ストップ

または、プレイ A を開始し、プレイ中に開始された B、次に C で続行します。

スタート AAABBBBBBBBCC ストップ

理想的には、同時に 2 つ以上のキューをプレイできるようにする必要があります。待ち時間はそれほど重要ではありませんが、理想的には、ファイル間のスキップによってクリック音や遅延が発生しないようにする必要があります。

私はAudio Queue Services(飛び込むのは地獄のように見えます)の使用を調べ、OpenAlを嗅ぎました。ラフの概要と、次の日に没頭して過ごすことができる一般的な方向性を教えてくれる人はいますか?

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

iphone - iPhoneでの録音からリニアPCMを取得するにはどうすればよいですか?

iPhoneで話者認証のようなことをしたい(コースプロジェクトとして)。そして、スピーカーからリニアPCMを取得する方法を考えています。キューサービスの資料を読んだところ、音を録音してファイルに保存しているようです。これから直接リニアPCMを取得する方法はありますか?ドキュメントにはバッファについての何かが記載されていましたが、私はそれを完全には理解していません。多分それはこれを行うための鍵ですか?

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

openal - AvCaptureSession と OpenAL またはその他のサービスを使用してサウンドを再生する方法

私はボイス チャットを実装するのが好きです。最初に CaptureSession でオーディオをキャプチャしました。オーディオを再生しようとすると、いくつかの問題が発生します。

OpenAL を使用すると、サウンドを取得できません。データはバッファに追加されますが、サウンドは出力されませんが、captureSession は実行されません。OpenAL はファイルで楽しく動作します。

Audio Queue Service と AUGraph では、音は出せますが、captureSession は 1 つの音を再生して停止します。

だから、私はcaptureSessionとOpenALで出入りするオーディオデバイスに問題があると思います...

AVCaptureSession と OpenAL を一緒に使用する方法、または AVCaptureSession の実行中にサウンド データを再生する他のサービスを使用する方法を誰かが知っていますか????

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

objective-c - obj-CのC関数で自分自身にメッセージを送信する方法は?

C 関数 (Audio Queue Services のコールバック関数) があり、自分自身にメッセージを送信したいと考えています。どうやってするか?[self message] と入力すると、エラーが発生します。

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

iphone - iOSのオーディオキューサービスに録音されたオーディオファイルを分析するにはどうすればよいですか?

ファイルパスを知っています。どうやって開けますか?オーディオを録音するときに、バッファにあるようなLPCM形式が必要です。

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

objective-c - Objective-C - ストリーミング データを Audio Queue に渡す

私は現在、iOS で IMA-ADPCM オーディオ データを TCP ソケット経由で読み取り、それを PCM に変換してストリームを再生するアプリを開発しています。この段階で、ストリームからデータをプルする (プッシュに反応すると言うべきか) クラスを完成させ、それを PCM にデコードしました。また、Audio Queue クラスをセットアップし、テスト トーンを再生します。サポートが必要なのは、Audio Queue にデータを渡す最善の方法です。

オーディオ データは、ADPCM デコーダーから 8 Khz 16 ビット LPCM として 1 チャンク 640 バイトで出力されます。(元は 160 バイトの ADPCM データですが、640 バイトに解凍されます)。これは uint_8t 配列として関数に入り、NSData オブジェクトを渡します。ストリームは「プッシュ」ストリームであるため、オーディオが送信されるたびにオブジェクトが作成/フラッシュされます。

Audio Queue コールバックはもちろん、実行ループの各パスでデータを検索するプル関数です。実行される各パスで:

私はこれに数日間取り組んできましたが、PCM 変換は非常に負担が大きく、2 つの間のデータを橋渡しする最善の方法を頭の中で組み立てるのに少し苦労しています。データを作成しているわけではありません。データがプッシュされているのではなく、単純にデータ作成を fillbuffer ルーチンに組み込むことができます。

uint16_t[] で 0.5 秒の循環バッファーをセットアップしました ~ しかし、脳が疲れ果てており、バッファーからプッシュおよびプルする適切な方法を見つけることができなかったと思います。 .

私は主に Android でプロジェクトを完了しましたが、AudioTrack は Core-Audio Queues とはまったく異なる獣であることがわかりました。

この段階で、Adamson と Avila による Learning Core Audio のコピーを手に取り、これがコア オーディオの謎を解こうとしている人にとって優れたリソースであることがわかったと言いたいと思います。

更新: バッファ管理コードは次のとおりです。

私が言ったように、私がこれを書いたとき、私の脳はぼんやりしていました。

上記のコードは、コールバックによって呼び出されます。

convAudio配列側では、ログに記録するためにそれをダンプしましたが、循環的にいっぱいになり、再いっぱいになっているので、少なくともそのビットが機能していることがわかります。

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

iphone - AudioQueueサービスを使用したオーディオブック(m4bメディア形式)の再生| iPhone

私は音楽を再生するためのiPhoneアプリの開発に取り組んでいます。オーディオファイルを再生するためにAudioQueueサービスを使用しています。アプリはすべてのメディアファイルを正しく再生しますが、オーディオブックを再生できません。これは、ライブラリ内の他のメディアアイテム(mp3)とはメディア形式(.m4b)が異なるためだと思います。

異なるファイル形式のメディアを再生するには、audioqueueまたはAVAssetReaderTrackOutputの初期化方法を変更する必要があると確信していますが、方法がわかりません。

誰かが私を正しい方向に向けることができますか?

前もって感謝します

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

iphone - オーディオおよびビデオ コンテンツを再生するための正しい選択

私がやっていること:

複数のオーディオ チャンネルを含む mkv/mka ファイルなど、Apple がサポートしていないオーディオ ファイルとビデオ ファイルを iPhone/iPad で再生する必要があります。

libffmpeg を使用して、メディア ファイル内のオーディオおよびビデオ ストリームを検索しています。ビデオはデコードされてavcodec_decode_video2おり、各関数の戻り値を持つオーディオavcodec_decode_audio3 は次のとおりです。

  • avcodec_decode_video2-AVFrameパッケージからのビデオ ビデオ フレームに関する情報をカプセル化する構造体を返します。具体的にはdata、ピクチャ/チャネル プレーンへのポインタであるフィールドがあります。
  • avcodec_decode_audio3-samplesタイプ int16_t * の戻り値は生のオーディオ データだと思います

つまり、基本的にこれをすべて実行し、メディア コンテンツのデコードに成功しました。

私がしなければならないこと : Apples サービスを使用して、それに応じてオーディオとビデオを再生する必要があります。私が実行する必要がある再生は、ビデオの再生中にオーディオ チャンネルのミキシングをサポートする必要があります。つまり、mkv ファイルに 2 つのオーディオ チャンネルと 1 つのビデオ チャンネルが含まれているとします。どのサービスが私にとって適切な選択になるか知りたいですか? 私の調査によると、AudioQueue サービスはオーディオの再生に役立つ可能性があり、おそらくビデオの場合は AVFoundation であることがわかりました。

私のケースに適したテクノロジー、つまり、ビデオ再生 + オーディオ チャンネルのミキシングが可能なオーディオ再生を見つけるのを手伝ってください。

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

iphone - AudioFileReadPackets を使用して Audio Queue で未加工のオーディオ データにアクセスする

Audio Queue コールバックに送信された未加工のオーディオ データにアクセスしようとしていますが、AudioFileReadPackets を呼び出した後、バイト数 (numBytes) が 0 です。

testBuffer の最初のインデックスだけを出力すると、0 ~ 4294967296 の値を取得できるため、空ではないようです。AudioFileReadPackets の実行後に numBytes が 0 になる理由はありますか?

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

objective-c - Audio Queue Services で aac を録音するときに、ファイルではなくバッファに保存します

私の目標は、オーディオを AAC 形式で録音し、ネットワーク接続を介してストリームとして送信することです。

私は Audio Queue Services を使用しており、コードは SpeakHere の例に基づいています。ファイルへの書き込みには AudioFileWritePackets() 関数を使用することを知っています。

コールバック関数は次のとおりです。

最初は、 AudioFileWritePacketsの内容を直接書き込むことで動作すると思っていましたinBuffer->mAudioData。ただし、手動で mAudioData の内容だけをファイルに書き込むと、デコードが機能しないようです。

AudioFileWritePacketsがファイルに書き込む内容と、mAudioData をファイルに書き込むだけの生データを調べて比較すると、ヘッダーが添付されているようです。

AudioFileWritePackets()が内部でどのように機能するかがわからないので、私の質問は、録音したオーディオをファイルではなくバッファ (または、この方法で呼び出す場合はストリーム) に書き込む方法です。後でネットワーク接続経由​​で送信しますか?

繰り返しますが、簡単に言うと、オーディオを aac 形式で録音し、ネットワーク接続を介してオーディオをストリーミングする必要があります。

ありがとう!私は自分の頭を真っ青に探していました...

PS: 既存のプロジェクトを教えてくれたら、それらが私が必要としているものであることを確認してください。あらゆる可能性のあるプロジェクトを探していたような気がします >.<