問題タブ [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:より大きなサイズのオーディオ wav サウンド ファイルを再生するとクラッシュする
基本的にメモリが少ないAndroid 1.6 HTCデバイスで、次のコード(AudioTrack)を使用して、より大きなサイズのオーディオwavファイル(> 20 mb)を再生しようとしています。しかし、読み取り、書き込み、再生を実行するとすぐにデバイスがクラッシュすることがわかりました。しかし、同じコードは問題なく動作し、より小さいサイズのオーディオ wav ファイル (10kb、20kb ファイルなど) を非常にうまく再生します。PS:ここで使用する理由は、PCM(.wav) バッファー サウンドを再生する必要があるためです。AudioTrack
私のデバイスのメモリは少ないですが、メモリの制約によるクラッシュを避けるために、より大きなオーディオ ファイルをバイト単位で読み取り、サウンドを再生するにはどうすればよいでしょうか。
より大きなサイズの wav ファイルの AudioTrack コードを再生する方法を教えてもらえますか?
java - AudioTrack オブジェクトの再生がいつ終了したかを知る方法は?
AudioTrack
クラスを使用して Android で PCM ファイルを再生しようとしています。ファイルを問題なく再生できますが、いつ再生が終了したかを確実に判断できません。AudioTrack.getPlayState
再生が終了していないときに再生が停止したと表示されます。で同じ問題が発生しておりAudioTrack.setNotificationMarkerPosition
、マーカーがファイルの最後に設定されていることは確かです (ただし、正しく行っているかどうかは完全にはわかりません)。同様に、getPlaybackHeadPosition
がファイルの最後に達し、インクリメントが停止すると、再生が続行されます。誰でも助けることができますか?
android - 22 回目にトーンを生成しようとすると、初期化されていない AudioTrack 例外が発生する
画面のようなダイヤル パッドを表示する必要があり、ユーザーがダイヤル パッドのボタンを押すたびに 1khz トーン (DTMF トーンではなく) を生成する必要があります。
以下のリンクのコードを使用して、1 khz トーンを生成しました。
ダイヤルパッド画面のボタンを 21 回押すまでダイヤルを開始すると、トーンが正常に生成されますが、22 回目の試行の後、アプリケーション応答なし (ANR) エラーが発生し、アプリを閉じる必要があります。
以下は私のコードです:
ダイヤルパッドのボタンを押すたびに onClick() メソッドが呼び出されます。
上記のコードを使用すると、Logcat で次の出力が得られます。
「audioTrack」の状態を 21 回目に値 1 (STATE_INITIALIZED) を取得するまで出力しています。その後、値 '0' (STATE_UNINITIALIZED) を取得しています。状態が変化する理由がわかりません。
アプリでこのフロスクローズの問題を防ぐために必要な変更を教えてください。またはこれを行うための代替手段があるかどうか提案してください。
android - AudioTrack:音の終わりを検出する方法は?
AudioTrack
AndroidでPCMWAVサウンドファイルを再生するために使用しています(こちらも参照)。ストリーミングモード、ワーカースレッド。を解放して解放できるように、サウンドの終わりをどのように検出するのか疑問に思っていますAudioTrack
。通話はwrite()
ブロックされているようですが、提供されたデータの再生が完了するまでブロックされますか?よくわかりません。
それは私ですか、それともこのクラスのドキュメントはひどく不十分ですか?の素敵な非公式ガイドへのリンクがあれば、AudioTrack
ぜひご覧ください。
android - 書き込み中にAndroidAudiotrackUIがフリーズする
サウンドを継続的に再生しようとしていますが、ストリームモードでオーディオトラックを作成しました。これは機能しますが、リスナーが反応して新しいバッチのデータをバッファーに書き込むたびに、UIが短時間フリーズします。トラックとリスナーは独自のスレッドに存在し、スレッドは最小優先度で設定されます。
私は何が間違っているのですか?
私の目的では、おそらくループメソッドを使用できますが、UIをブロックせずにサウンドをストリーミングする方法を理解したいと思います。
前もって感謝します。
android - アンドロイドバイト配列バッファとパフォーマンス?
外部の場所(sdcard)からwavファイルをロードし、単一のAudioTrack(ストリーミングモード)を使用してそれらを再生したい。
ファイルを読み取ってバイト配列にデータを入力するには時間がかかるため、各サウンド(onCreateなど)の配列を作成し、必要に応じてそれをAudioTrackにフィードすることを考えました。
これはパフォーマンスに影響しますか?この配列はどのように保存されますか?「ライブ」メモリの一部を使い果たしますか?
これを行う別の方法、または私が見ることができる例を知っていますか?
お時間をいただき、ありがとうございました。
android - SoundPool エラー: 使用できるトラック名がこれ以上ありません
サウンドプール クラスに問題があります。ここに行きます:
私のゲームアプリ (ところで音楽アプリ) では、少なくとも 32 の短いサウンドを同時に再生する必要があるため、サウンドプールを次のように宣言します。
その後、必要なすべての MP3 サウンドをロードします。それぞれ 55 KB の約 80 のサウンドです。すべてのサウンドをロードするのに問題はありませんが、遅いです! まあ、それは問題ではありません。実際の問題は、同時に約 20 のサウンドを再生すると、ログにエラーが記録されることです。
その後、再生しようとするすべてのサウンドで同じエラーがスローされ、サウンドを再生できません。別のアクティビティ/サウンドプールの音さえありません。何が起こっているのか、それを修正する方法についての手がかりがありません!サウンド ファイルの形式を変更する必要がありますか? サウンドを再生した後、メモリなどを解放する必要がありますか?
(Samsung Galaxy S I9000、2.3.3 OS システムでテストしています。アプリは 2.1 です)
android - 停止後も AudioTrack が再起動する
与えられた周波数の方形波を生成し、AudioTrack を STREAM モード (STREAM_MUSIC) で使用して再生する簡単なアプリケーションを作成しました。すべてが正常に機能しているようで、サウンドも正常に再生されますが、ストリームが終了すると、ログに次のメッセージが表示されます。
W/AudioTrack( 7579): acquireBuffer() トラック 0x14c228 が無効になりました。再起動しています ...
stop() 関数を呼び出した後でも、これらを取得します。AudioTrack に必要な最小サイズ (私の場合は 6x1024) に基づいて、AudioTrack バッファー サイズを適切に設定したと思います。1024 ショートの小さなバッファーをフィードします。
これらを取得しても問題ありませんか?そのままにしておく必要がありますか?
android - Android AudioTrackオブジェクトは、静かな正弦波信号を再生しません(約15 dB未満)
Android API AudioTrackオブジェクトを使用して、生成されたサインオーディオ信号を再生する際に問題が発生しました。正弦波信号の振幅が約40を超えている間はすべてうまく機能しますが(16ビットPCM形式のために可能な最大振幅値は36535です)、振幅を40未満に設定すると、音量レベルを変更しない限り音が鳴りません。サイドアップダウンボタン(上下に変更してもかまいません)。
この方法でも、音は1秒間だけ表示され、再び消え、10秒間続くはずです。SGS 2でこの問題が発生しています。この問題は、OSのコアの制限が原因であると考えられ、ノイズのようなこの低信号を考慮している可能性があります。
誰かが問題が何であるかについての考えを持っていて、それを修正する方法について私にいくつかの指示を与えてくれれば幸いです。
android - EclipseのバッファごとにAudioTrackバッファを使用して音楽を再生する-音が出ない
私はAndroid2.1用にプログラミングしています。次の問題について教えていただけますか?
私は3つのファイルを持っています、そして一般的な目的はバッファごとにオーディオトラックバッファでサウンドを再生することです。私はすべてを試したので、ここでかなり必死になっていますが、スピーカーから音が出ません(Androidの統合メディアプレーヤーはエミュレーターを介して音を再生するのに問題はありません)。
ソースコード:
オーディオトラックを実装するオーディオプレーヤークラス。サウンドが含まれているバッファを受け取ります。
バッファを埋めるために使用するモデルクラス。通常はファイルからサウンドをロードしますが、ここではデバッグにシミュレーター(440Hz)を使用します。
バッファサイズは非常に緩く選択されます。通常、最初のバッファサイズは6615、次に4410である必要があります。これも、デバッグ専用です。
200ミリ秒ごとにmodel.ontimechange()を呼び出すtimeTaskクラス。
デバッグが私に示したもの:
- timeTaskは正常に機能し、その役割を果たします。
- バッファ値は一貫しているように見え、バッファサイズはminBufSizeよりも大きくなっています。
- オーディオトラックの再生状態は「再生中」です
- モデル関数で例外は発生しません。
どんなアイデアでも大歓迎です!