問題タブ [audioflinger]

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

android - libmedia\AudioFlinger を使用してオーディオを直接録音\再生する

生のオーディオを再生/録音するために libmedia\AudioFlinger に直接接続する可能性をチェックしています (AudioTrack\AudioRecord のように)。

目的は、これら 2 つの Java クラスの最小バッファー サイズ制限を回避することです。2.3 で OpenSL が導入されることはわかっていますが、2.2 以下で導入したいと考えています。

誰もそれをやったことがありますか?それを使用する良いリファレンス実装はありますか? そうでない場合、このライブラリにリンクし、それを使用して最小バッファ サイズを回避するにはどうすればよいでしょうか?

ありがとう

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

android - AudioFlinger とは何ですか? また、TONE_PROP_ACK が失敗するのはなぜですか?

私のアプリケーションでは、次のステートメントを発行します。

これは、Android 2.3.3 を実行している安価な LG LS670 では非常にうまく機能しますが、Android 2.2.1 から Android 2.3.4 まで、私が持っている他のすべての電話ではまったく聞こえません。

したがって、ここでは OS のバージョンは関係ないことはわかっています (ドキュメントで、API 1 以降でサポートされていることも確認しました)。

また、着信音の音量とメディアの音量の両方が最大に設定され、toneGenerator は次のように初期化されます。

そして、それが1に設定されていることを確認しSettings.System.DTMF_TONE_WHEN_DIALINGました。

この一貫性のない動作 (さまざまな電話間で) に困惑し、これが発生したときにシステム ログを調べたところ、唯一の疑わしい違いは、音が出ない電話TONE_PROP_ACKのログに次の行があることだけでした。

AudioFlingerの目的は何ですか?また、ミュートとの関係は何TONE_PROP_ACKですか?

電話のモデルに関係なく、 TONE_PROP_ACKが常に鳴るようにコードを修正する方法はありますか?

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

android - MediaPlayerサーバーが停止しました

ループでmp4ビデオを再生しようとしていますが、2つのデバイスに問題があります(他のすべてのデバイスでは、コードは正常に機能します)MotorolaDefy2.2.1MotorolaAtrix4G2.3

問題は、1回実行した後、メディアがスタックし、次のエラーが発生することです。

これは私のコードです:

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

android - ネイティブ Android コードを使用して audioflinger を介してサウンド ファイルを再生する

これはまさに私が欲しいものです。Androidのオーディオフリンガーに直接アクセスできるCコードの書き方を知りたいです。もちろん、オーディオフリンガーはいくつかのインターフェイスをエクスポートします。libaudio.so が存在する可能性があると思います。これをコンパイルに含めて、これを実装する単純な再生関数を呼び出します。play("filename"); のようなものを与えるだけです。

乾杯バイシャリ

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

android - AudioFlinger はトラックを作成できませんでした、ステータス: -12、ネイティブ CocosDenshion、cocos2d-x で効果音をループするとき

cocos2d-x で CocosDension を使用してサウンドをループしようとすると、次のエラーが発生します。 私のエラー

私は安定した cocos2d-2.0-x-2.0.2 を使用しています。コードは次のとおりです。

これは、私の電話 (Samsung Galaxy S III、verizon) と Android エミュレーター (バージョン 4.0、ICS) の両方で発生します。

私に何ができる?

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

android - Android AudioTrackで「ステータス-12」とはどういう意味ですか?

Androidのsoundpool/audioTrackを使用すると、次のエラーが発生し続けます。

誰かが何を説明できます-12か?ソースコードの列挙型の値ですか?

エラーを扱う他の質問を見たことがあります-12が、その定数が実際に何を表しているのかを決定的に理解することはできません。誰かがAudioFlingerの可能なステータスのリストを知っていますか?エラーも見まし-22たが、それが何を意味するのかわかりません。

ソースコードやドキュメントでバックアップされた回答が最適ですが、この時点で入手できる情報はすべて取り上げます。

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

android - AudioTrack.write と AudioFlinger.read の間

この方法の可能性を確認しています。愚かな考えがあれば、訂正してください。音質を向上させたい。ウェブからのいくつかの知識によると、がaudio/music/sound再生されると、 PCM データが共有バッファーに転送され、PCM データがこの共有バッファーから形成されることがわかりました。アイデアは、サービスを使用して、によって書き込まれた後に PCM データを傍受し、PCM データを変更してから、共有バッファに復元することです。誰か助けて/訂正してください。AudioTrackwrite()AudioFlingerread()AudioTrack.write()AudioFlingerread()

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

android - カスタムAndroidのlibaudio.soまたは「Androidでオーディオはどのように機能しますか?」を実装します。

現在、Androidが4.0を超えていることを発見しましたが、自分では理解できない質問がいくつかあります。おそらくあなたが私を助けてくれるでしょう。

「AlsaMixer」や「MixGetwithALSA」などの一部のマーケットアプリは、「libaudio.so」というライブラリを「/ system / lib /」に(ユーザー支援付きで)配置していることがわかりました。

何が起こっているのか疑問に思いました。しばらく検索したところ、すべてのAndroid企業が特定のC++インターフェイスを実装してそのパスに配置するlibaudio.soを作成できるようです。

次に、Androidはこのライブラリをオーディオ処理に使用します(ALSA、TinyALSAなどの実装が存在します)?

しかし:私の電話にはそのようなlibaudio.soはありません-これはどのように機能しますか?そうでなければ何が取られますか?そのディレクトリに「libasound.so」があることがわかりましたが、これがデフォルトですか?

自分のlibaudio.soを実装しようとすると(現時点ではほとんど知識がありません)、その中の「デフォルト」ライブラリを参照できますか?

ねえ、世界中のすべての電話に機能するオーディオ実装があり、ホイールを再設計(再構成)するのではなく、それを拡張したいだけですか?

つまり:

AudioFlinger->私のカスタムlibaudio.so->default-library(libasound.so?)->スピーカー

そして、私の電話にすでにlibaudio.soがある場合はどうなりますか?

私はすべての有益な答えに本当に感謝します。たぶん誰かが私のためのアドレスを持っていて、初心者には理解できますか?

よろしくお願いします!

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

android - Android MediaPlayer AudioStream AudioFlinger サーバーが停止しました!、致命的なシグナル 11

2 つのフラグメント (左右) があり、左側のフラグメントで Radiostreams のリストを取得します。これらのストリームのいずれかをクリックすると、正しいフラグメントがストリームの名前を変更し、指定された uri でストリームの再生を開始する必要があります。

2 問題:

  1. ラジオ ストリームの一部は最新ではないため、多くのラジオ ストリームが機能しなくなりました。問題は、これによりアプリが強制終了することです! エラー処理を行いましたが、そのようなストリームを呼び出した後、次のようになります。

03-20 14:23:28.192: A/libc(1021): 0x00000000 の致命的なシグナル 11 (SIGSEGV) (コード = 1)

03-20 14:23:28.192: W/AudioSystem(1021): AudioFlinger サーバーが停止しました!

03-20 14:23:28.192: W/IMediaDeathNotifier (1021): メディア サーバーが停止しました

03-20 14:23:28.192: E/MediaPlayer(1021): エラー (100, 0)

03-20 14:23:28.192: I/ServiceManager(1021): サービス media.audio_flinger を待機しています...

03-20 14:23:28.752: I/dalvikvm(1021): threadid=3: シグナル 3 に反応しています

03-20 14:23:28.782: I/dalvikvm(1021): スタック トレースを「/data/anr/traces.txt」に書き込みました

03-20 14:23:29.192: I/ServiceManager(1021): サービス media.audio_flinger を待機しています...

どうしてか分かりません。エラー処理を行う他の方法はありますか? または、mediaPlayer.setDataSource(uri) を呼び出す前にすべてのストリームをチェックして、欠陥のある uris の準備を避ける方法はありますか? (最後に私のコードを参照してください)

  1. 左の ListFragment をリモコンで操作しています。あるチャネルから別のチャネルに非常に速く切り替えようとすると、すべてが非常に遅くなります。Mediaplayer の再インスタンス化には非常に時間がかかるようです。再インスタンス化しないと、mediaPlayer.setDataSource(..) を再度呼び出すとランタイム エラーが発生します。1 つの MediaPlayer オブジェクトで .setDataSource を 2 回呼び出す方法はありますか?

これが私のコードです: 私の MediaPlayer Wrapper クラス:

これが私の TestFragment (右のフラグメント) です。注: 左の Fragment は、リスト項目がクリックされるたびに、TestFragment からメソッド「newChannel(radioChannel)」を呼び出しています。

プロの方、どちらか、または両方の質問について教えてください。

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

java - 電話の音声通話をAndroidのカスタムサウンドサービスにルーティングしますか?

AudioHardwareBase から派生したカスタム オーディオ インターフェイスを実装し、AudioFlinger コンストラクター クラスで初期化しました。このクラスは、ネットワーク経由でオーディオをストリーミングします。これは、ファイルからサウンドを再生するときは正常に機能しますが、電話をかけるときは機能しません。この問題は、電話の音声が (ソフトウェアからの) オーディオ ファイルとは異なり、ハードウェアからのものであることが原因であると考えられます。この作業を行うために、基本的な Android ライブラリ/ドライバーを変更したいと考えています。どうすればこの問題を克服できますか?

ありがとう