問題タブ [audiotrack]
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.
android - Android - 複数の静的波形を単一の AudioTrack に混合する
私は、周波数値の配列 (つまり、440Hz、880Hz、1760Hz) を受け取り、単一の AudioTrack に結合されたサウンドを再生するクラスを作成しています。私はサウンド プログラマーではないので、経験豊富なサウンド プログラマーにとっては比較的簡単な問題だと思いますが、これを自分で書くのは困難です。以下は、play メソッド内のコードの一部です。
現時点では、このコードは単純にコンサート A (440Hz) を再生します。このコードが機能するかどうかをテストするためでした。ここで、一連の周波数を取得し、何らかの計算を実行して、サンプル データを書き込む必要があります。
java - AudioTrack がフル バッファを再生しない
600hz で 10 秒のサウンドを再生しようとしていますが、代わりに 600hz を 3 秒以上再生できません。誰かが私が間違っていることを指摘できますか?
デバッグ行が戻る場所
一貫して。
play.length = 442368 であることに注意してください。
さらに実験を重ねた結果、バッファーは常に play.length の半分ですが、バッファーの大きさに関係なく、サウンド自体は 3 ~ 5 秒しか持続しません。
android - Android AudioTrack がアンダーバッファになったときに通知を受け取るにはどうすればよいですか?
AudioTrack オブジェクトがアンダーバッファになった場合にコールバックまたは何かを取得する方法を見つけようとしています。これにより、再充填されるまで再生を一時停止できます。これは私以外の人にも役立つと思います!
私が考えることができる唯一のアプローチは、バッファーを書き込むたびに Systemclock.elapsedRealtime() を呼び出し、AudioTrack に書き込んだミリ秒数と比較することです。これにより、バッファーに残っている量が得られると思いました. しかし、測定された時間差 (ログに表示) は、一定に保たれるのではなく、時間の経過とともに徐々に増加または減少します。誰でも理由がわかりますか?
これが私が持っているものです。最初に初期化する:
次に、バッファを書き込みます。
android - ヘッドホンで音楽を再生しながらスピーカーで音を再生する
AudioTrack
ヘッドフォンでストリーミングしています。ヘッドフォンでの再生SoundPool
を中断することなく、内蔵スピーカーのみに送信する必要があります。AudioTrack
ハッキングギャングはいますか?
android - AudioTrack クラスを使用した Android での静的波形の連続合成
play()
以下は、任意の周波数セットを単純に生成し、それらを 1 つのトーンにブレンドする私のメソッドのコードです。
問題は、それがほんの一瞬しか再生されないことです-私はそれを連続して再生する必要があります. Android で AudioTrack クラスを使用して常にサウンドを生成する方法についての提案をいただければ幸いです。定数と関係があると思いますが、どうすればいいのMODE_STREAM
かわかりません。
AudioTrack クラスのドキュメントへのリンクは次のとおりです。
http://developer.android.com/reference/android/media/AudioTrack.html
編集: 1 つの重要な側面について言及するのを忘れていました。ループすることはできません。場合によっては最大 50 以上の周波数が混合されるため、すべての周波数ピークの最小公分母がないため、音が途切れ途切れになります。
android - 生のフォルダからサウンドを再生するAudioTrackAndroid
AudioTrack
リソースフォルダからrawファイルを生で再生することは可能ですか?Androidプロジェクトでrawファイルを参照する方法はたくさんありましたが、多くの例外がありました。
これが今の私ですが、ボタンを押しても音が出ません。
android - Android 2.3 AudioTrackの問題(obtainbufferがタイムアウトしました-CPUがペグされていますか?)
AACファイルチャンクをバッファリングし、それらのチャンクをPCMバイト配列にデコードし、PCMオーディオデータをAudioTrackに書き込むオーディオストリーミングアプリを作成しています。別の曲にスキップしようとすると、AudioTrack.pause()またはAudioTrack.flush()を呼び出すと、次のエラーが発生することがあります。
そして、何が起こるかというと、ほんの一瞬のオーディオが再生され続けます。SDカードからAACファイルのセットを読み取ってみましたが、同じ結果が得られました。私が期待している動作は、オーディオがすぐに停止することです。なぜこれが起こるのか誰かが知っていますか?Android2.3でのオーディオレイテンシの問題かどうか疑問に思います。
編集:AACオーディオにはADTSヘッダーが含まれています。ヘッダーとオーディオペイロードは、私がADTSFrameと呼んでいるものを構成します。これらは一度に1フレームずつデコーダーに供給されます。CレイヤーからJavaレイヤーに返される結果のPCMバイト配列は、AndroidのAudioTrackAPIに送られます。
編集2:今日ネクサス7(Android 4.1 OS)を入手しました。同じAPPをデバイスにロードしました。これらの問題はまったくありませんでした。
android - AudioTrack - サウンドの開始/終了を知るには?
オーディオ トラックを使用して、ストリーム モードで別のサウンドを再生しています。各サウンドの再生中/再生終了を知る方法があるかどうかを知りたいです。
次のようにオーディオ トラックを作成します。
そして、バックグラウンド スレッドで開始します。
ランナブル内に次のように各サウンドを記述します。
setNotificationMarkerPosition、setLoopPoints、setPositionNotificationPeriod などの AudioTrack API を使用してこれを達成できますか? そしてそれらはどのように機能しますか?
各サウンドは、異なる持続時間になる場合があります。これが鍵だと思います。
これらの API のドキュメントを完全には理解していません。各フレームはサンプルと同じですか? 各サウンドの開始/終了位置にマーカーを指定するにはどうすればよいですか?
ありがとう、
android - ピアノの音を鳴らすための Android AudioTrack クラス
ユーザーがディスプレイに表示される仮想ピアノで演奏できるピアノアプリを実装しようとしています。レイテンシーが低いため、AudioTrack クラスを使用しようとしていますが、これは多くの問題を引き起こします。私の問題は、音を速く再生することです。現時点では、ボタンを使用してテストしています。ボタンを押して高速にすると、次の例外が発生します。
AudioTrack を静的モードで使用しています。サウンドを再生するたびに、新しい AudioTrack(....) を使用して新しい AudioTrack オブジェクトを作成し、次に write(...) と play(....) を作成する必要があります。
インスタンス化が十分に高速ではないため、例外が発生すると思います...
コードは次のとおりです。サウンドは、別の非同期タスク クラスのハッシュマップに格納されます。
誰かがこの問題を解決するのを助けることができれば素晴らしいでしょう.おそらく静的モードの代わりにストリームモードを使用して、サウンドが前処理されるか、空のバイトバッファがaudiotrackに書き込まれ、ボタンをクリックするとハッシュマップサウンドがaudiotrackにストリーミングされます.
android - Androidオーディオトラックは特定の周波数を超えて出力されません
単一のトーンを作成して保存し、Android オーディオ トラック クラスを利用して再生する Android 用のアプリを作成しました。問題は次のとおりです。私の電話では最大約 11kHz の周波数のトーンしか再生できず、PC から実行される仮想電話 (まったく同じコード) では最大約 14kHz の周波数を取得できます。このカットオフの原因は何ですか?
市販のトーン ジェネレーター アプリを使用すると、私の電話は最大 20kHz の信号を生成できるので、ハードウェアの問題ではないことはわかっています。
ありがとう。