問題タブ [tinyalsa]
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 - tinymix コマンドでオーディオをキャプチャする方法はありますか?
モバイルから USB 経由で Raw オーディオ データを直接キャプチャしようとしていますが、キャプチャする tinymix コマンドはありますか?
android - Androidでtinycapで記録を停止するには?
tinycap を使用して、Android フォン デバイスでスクリプトを自動的に実行しています。
しかし、それを止めるためにどのように議論するのですか?
お気に入りtinycap -d 5 test.wav(5s)
ありがとう。
c - tinyalsa: pcm_start で不正なファイル番号エラーが発生する
tinyalsa を使用するベアボーン プログラムを試みていpcm_start
ますが、常に失敗し、( 、つまり不正なファイル番号)に戻っ-1
て設定errno
されます。この前の への呼び出しは、null 以外のポインターを返しますが、に設定されます。9
EBADF
pcm_open
errno
22
tinyalsa のドキュメントがないように見えるので、何をすべきか理解に苦慮しています。私は alsa (tinyalsa ではない) の例に基づいてプログラムを作成し、tinyalsa のヘッダー ファイルを読みました。誰でもガイダンスを提供できますか?
(完全なコードはPastebinで入手できます。)
pcm_open
fromの最初の 2 つの引数の値を推測すると、次のaplay --list-devices
ように出力されます。
(私はこれを Android ではなくワークステーションでコンパイルして実行しています。)
android - QAudioDeviceInfo::availableDevices() は、利用可能なすべてのデバイスを返すのではなく、実際に存在する 3 つのオーディオ出力デバイスのうち 1 つだけを返します。なぜですか?
質問:
1. QAudioDeviceInfo::availableDevices(QAudio::AudioOutput)) は、3 つのオーディオ出力デバイスから 1 つのオーディオ デバイス (デフォルト デバイス) のみを返します。なんで? 合計 3 つのオーディオ出力デバイスが利用可能で、ALSA デバイスでチェックしながら、コマンド ラインで「tinyplay」ユーティリティを使用して出力を検証しました。しかし、QAudioDeviceInfo::availableDevices() はこれら 3 つのデバイスを返さず、1 つのデバイスのみを返します (デフォルト)。
注: qt サンプルのサンプル コードをオーディオ出力に使用しました。返却されたデバイスは 1 つだけです。
2. 特定の ALSA デバイス (例: card0、デバイス 0) をデフォルトのオーディオデバイスとして設定するには? この場合、QAudioDeviceInfo::defaultOutputDevice() はサウンド カード 2 のデバイス 0 として設定されます。
詳細は下記をご覧ください。
システム設定:
対象ボード:iMX6QセイバーAI
OS : アンドロイドM6
Qt : QT 5.8
Android NDK r10
アンドロイド SDK: 25.2.5
利用可能なサウンド カード:
root@sabreauto_6q:/ # cat /proc/asound/cards
0 [cs42888audio]: cs42888-audio - cs42888-audio cs42888-audio 1 [imxspdif]: imx-spdif - imx-spdif imx-spdif 2 [imxhdmisoc]: imx-hdmi-soc - imx-hdmi-soc imx-hdmi-社会
利用可能なサウンド デバイス:
root@sabreauto_6q:/ # cat /proc/asound/card0/ id pcm0c/ pcm0p/ pcm1c/ pcm1p/
root@sabreauto_6q:/ # cat /proc/asound/card1/ id pcm0c/
root@sabreauto_6q:/ # cat /proc/asound/card2/ id pcm0p/
注: 合計 3 つのサウンド カードと 3 つのオーディオ (ALSA) 出力デバイスが存在します。
オーディオ出力デバイスのテストを試みます:
tinyplay ユーティリティのサウンド出力を使用して、オーディオ出力ドライバー全体で検証済み。
tinyplay test.wav -D 0 -d 0 --> サウンド確認済み。注 : サウンド カード 0 の ALSA デバイス 0 は、サウンドを生成するために実行されています。
tinyplay test.wav -D 0 -d 1 --> サウンド確認済み。
tinyplay test.wav -D 2 -d 0 --> サウンド確認済み。
android - pcm->fd が負の整数を返すため、pcm_open と pcm_is_ready の呼び出しが失敗する
Android 9.0 で tinyalsa を試行すると、pcm->fd が < 0 であるため、pcm_is_ready 呼び出しが失敗します。これは、pcm->fd = open(fn, O_RDWR|O_NONBLOCK); が原因です。オープンコールが失敗しています。そして、私はselinuxを寛容にしました。およびchmod 777 -Rを/ dev/sndに指定すると、Androidでこの問題を解決する方法は???
私はselinuxを寛容にしました。chmod 777 -R を /dev/snd に指定します