問題タブ [alsa]

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

python - MP3 と OGG を再生でき、ALSA などをサポートするクロスプラットフォームの Python ライブラリを探しています

いくつかの異なるオーディオ ライブラリがありますが、私のニーズ
を正確に満たすものはありません。 - クロスプラットフォームである必要があります。
- Linux で ALSA、PulseAudio、またはその他の一般的なデフォルト ミキサーを使用できる必要があります。
- サンプル周波数を自動検出できる必要があります。
- 代わりに、誰かが私にとっても受け入れやすくする追加のスクリプトを提供できる場合は、使用法が (かなり) シンプルである必要があります。
- 私が必要とする唯一の機能は、再生/一時停止です。シークは素晴らしいボーナスです。
- MP3 と OGG を再生できる必要があります。私にとって他の形式は重要ではありません。

これまでに試したライブラリ:
PyGame - 曲の頻度の検出をサポートしていません
PyAudiere - 有望ですが、ミキシングに深刻な問題がある Linux でのみ OSS をロード
します 組み込みモジュール - 私が知る限り、MP3 と OGG をサポートしていません
PyMedia - 有望ですが、複雑です。また、使用しているミキシング デバイスを特定できませんでした。
PySonic - クローズド ソース ライブラリに依存しています。
PyQt4.phonon - 有望ですが、何も再生しません。次のエラーが発生しました。

gst_element_make_from_uri: アサーション `gst_uri_is_valid (uri)' が失敗しました

これに関する助けをいただければ幸いです。

0 投票する
4 に答える
6280 参照

c - デバイスを開かずに Linux でプログラムによって ALSA オーディオ デバイスの機能を見つける方法

最初にデバイスを開かずに ALSA デバイスの機能を確認するにはどうすればよいですか? 問題は、snd_pcm_open()テスト関数を使用するために関数にパラメーターを提供する必要があることですが、これはばかげています。最初に open 関数に伝える必要がある場合、これが再生デバイスか録音デバイスかを尋ねるのはなぜですか?

例として、すべての再生デバイスをリストしたいと思いますが、私が考えることができる唯一の方法は、見つけたすべてのデバイスを ( でsnd_device_name_hint()) 開き、再生モードでそれらを開こうとすることです。

問題は、考えられるすべてのバリエーション (サンプル レート、チャネルなど) を使用すると、パラメーターを見つけるために非常に多くの open() を実行する必要があることです。

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

c++ - alsa で 8 ビット符号付きモノラル 16khz サウンドを録音する最も簡単な方法 (パルスと互換性のある方法で) は?

私は完全に迷っています.c ++でALSAを使用してサウンドを録音する方法の非常に簡単な例はありますか? 必要なのは、プログラムの別の部分に供給するための符号付きバイトとしての生のサンプルだけです。グーグルで見つけたすべての例は、PulseAudio に問題があるか、必要なものをカバーしていないようです。

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

c - ALSA: デバイス リストでデバイスを見つけるにはどうすればよいですか?

提供されているほとんどのドキュメントを読んだ後でも、ALSA アーキテクチャを理解していないようです。

snd_device_name_hint() と snd_device_name_get_hint() を使用して、利用可能なすべての ALSA デバイスを一覧表示します。これは、特に hwdep クラスの下に「パルス」をリストしているため、私のシステムで PulseAudio が利用できるようです。しかし、snd_pcm_open() (ノンブロッキング モードで、in または out のいずれか) で開こうとすると、「そのようなファイルまたはディレクトリはありません」というメッセージが表示されます。

何を与える?他のデバイスを開くことができます。たとえば、内蔵の Intel チップは正常に動作しますが、PulseAudio はなぜ動作しないのですか?

0 投票する
4 に答える
22157 参照

c++ - ALSAのsnd_pcm_writei()の使い方は?

誰かがどのようにsnd_pcm_writeiを説明できますか

動作しますか?

私はそれをそのように使用しました:

http://pastebin.com/m2f28b578の完全なソースコード

これは、snd_pcm_writei()のすべてのフレームの数を指定するのでbufferはなく、

sample_rate*レイテンシー=frames

したがって、たとえば次の場合:sample_rate=44100レイテンシ=0.5[s] all_frames = 100000

私が与えるべきフレームの数snd_pcm_writei()

sample_rate*レイテンシ=フレーム44100*0.5 = 22050

そして、forループの反復回数は次のようになりますか?:

(int)100000/22050 = 4; フレーム付き=22050

と1つ余分ですが、

100000 mod 22050 = 11800

フレーム?

それはどのように機能しますか?

ルイーズ

http://www.alsa-project.org/alsa-doc/alsa-lib/group___p_c_m.html#gf13067c0ebde29118ca05af76e5b17a9

0 投票する
4 に答える
28486 参照

android - アンドロイド OpenAL?

Android 用に OpenAL を構築した人や、システム上でその共有ライブラリを見つけた人はいますか? これは、あらゆる種類のゲームの明らかな必要性のように思えますが、そのためのリソースはありません. どうやら Android の Java サウンド ライブラリではピッチの変更ができないようで、OpenAL が必要なようです。OpenAL Soft が ALSA の上に構築できることは知っていますが、誰かがそれを行ったかどうかはわかりませんし、1 か月かかることは間違いありません。

OpenAL を使用しない Android でのサウンド操作に関する適切なガイドがどこかにあれば、それも問題ありません。ただ、OpenAL はゲーム メーカーにとって一種の標準であり、私の何千もの行をこのシステムに移植できればいいのですが、それを掘り下げる前に NDK の要点だと思っていたのですが、ほとんど何もないことがわかりました。システム上の共有ライブラリ アクセス。

ありがとう.. Java の専門家になることなく、実際に移植できることを願っています。これまでのところ、NDKが本当に嫌いです!

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

c++ - Linux、C++ オーディオ キャプチャ (マイクのみ) ライブラリ

私は音楽ゲームを開発しています。これはシングスターのようなものですが、歌う代わりにリコーダーを演奏する必要があります。それはoFluteと呼ばれ、まだ開発の初期段階にあります。

ゲームでは、マイク入力をキャプチャし、単純な FFT 分析を実行して、結果を一般的なレコーダーの周波数と比較し、演奏された音を取得します。

当初、使用していたオーディオ ライブラリはRtAudio でしたが、現在使用しているPortAudioに切り替えた理由は覚えていません。問題は、マイクから音が聞こえない場合のように、時々ランダムにクラッシュするか、キャプチャを停止することです。

私の質問は、Linux でマイク入力をキャプチャするための最良のオプションは何ですか? マイクからのバイト フローを開き、読み取り、閉じるだけです。

私はこのガイドを読んでいますが、(驚くべきことではありませんが)次のように書かれています。

PortAudio は、Unix ライクなオペレーティング システムにはあまり適した API ではないと思います。

それで、あなたは私に何を勧めますか?

0 投票する
3 に答える
5581 参照

c - Alsa バッファーの正しいサイズ設定、奇妙な API

私は現在、Alsa でサンプリングを行う必要があるプロジェクトに取り組んでいます。すべてを正しく設定しようとしていますが、読み値のサイズを正しく設定する方法に行き詰まっています。

私のタスクにとって興味深いと思われる2つのプリミティブがあります。

最初の名前は、出力がサンプリング期間の時間長になることを示唆していますが、それは奇妙です:f = 44100Hzサンプリング期間にサンプリングレートを設定している場合 (ナノ秒単位) はT0 = 1e9 / 44100 ~= 22676 ns、関数が応答する間T1 = 725 us = 725000 nsです。

一方、非ロック プリミティブを使用するように依頼された場合でも、'readi' をロックするのに必要な時間をプロファイリングしようとしていT2 = 8028603 nsますT3 = 12436217 ns

最後に、次の 2 つの意味がわかりません。

バッファの時間と期間のサイズを測定する方法がわかりませんが、前者は と同じ値をget_buffer_size返し、後者は と同じ値を返しますget_period_time

ヒントはありますか?

0 投票する
3 に答える
12481 参照

linux - aplay / alsaplayer - 通常のユーザーに対してサウンドが機能しない

通常のユーザーとして alsa を使用することはできません (その結果、クロムで音が聞こえなくなります)。

私はそれが許可と関係があると推測しています。グループオーディオに自分を追加しても役に立ちませんでした。

通常のユーザーとしてサウンドをテストする:

そしてルートとして...

コマンド「aplay -l」を通常のユーザーとして実行します。

そしてルートとして...

これを引き起こしている可能性のある手がかりをいただければ幸いです。おそらく、どこかで何かを変更する必要がありますか?

0 投票する
3 に答える
3635 参照

android - Androidエミュレータの音 - ubuntu

Android開発にUbuntu 10.04 64ビットを使用すると、サウンド以外はすべてうまくいきます。

-audio オプションと -audio-out をバックエンド パラメータとして alsa とともに使用しましたが、うまくいきませんでした。

何か案が?