web-dev-qa-db-ja.com

`/ dev / audio`を読むことと現代的に同等なものは何ですか?

最近、私の信頼できる自宅のPCが10年後に亡くなりました。その後のアップグレード(SuSE10からOpenSuSE12.3への)は、私にとってカルチャーショックのようなものでした。私が収集した便利なショートカットやユーティリティはもうありません。今日、私はサウンド入力を再び機能させようとしています。

以前は、/dev/audioを開き、いくつかのioctlを実行してからバイトを読み取る(そして書き込む)だけの小さなユーティリティを介して、サウンドカードのライン入力を介して地元のラジオ局から深夜の番組を録音していました。 libsndfileを使用してWAVファイルに変換します)。特別なことは何もありません。N秒のサウンドを録音でき、フロントエンドなしで、Xを必要とせずに、そして実際にログオンしなくても、cronを実行できる小さな「自動録音」ユーティリティです。 (元々はxawtvのrecord.cから採用されました。)

現在、これは機能しなくなりました。サウンドカードは設定されていますが、このツールで音声を録音することはできません。実際、/dev/soundはもうないようです。私が集めたものから、2004年でさえ、それはひどくサポートされたレガシー機能でしたが、すべてのクールな人々は、はるかに洗練された有能なALSAインターフェースに対してプログラムすることになっていました。

サウンドデバイスから入力をすばやく取得するための現在推奨されている方法は何ですか?どういうわけか/dev/soundエミュレーションを再度有効にできますか? Xセッションを提供したり、深夜にボタンを押したりする必要がない限り、サードパーティのプログラムでもうまくいくと思います。

4
Kilian Foth

サウンドスタックの開発者が私を予期し、私のような状況のために特別に回避策を書いたことがわかりました-私は最初はそれを見つけることができませんでした。

Aoss は、まさに望ましいことを実行します。libaoss.soをプリロードしてから、別のコマンドラインを実行すると、/dev/dspが表示され、ioctl/read/writeが可能になります。代わりに、例えば.

autorecord -a -t -d 300 -o violin_concerto 

いう

/usr/bin/aoss autorecord -a -t -d 300 -o violin_concerto 

廃止されたツールを以前と同じように機能させるため。

別の方法は、対応するエミュレーションカーネルモジュールをロードすることです。これにより、actual/dev/dspおよび/dev/audioが作成されます。

# modprobe snd_pcm_oss
# modprobe snd_seq_oss
# modprobe snd_mixer_oss

(もちろん、責任を持って将来を見据えることは、成長し、ALSAとpulseaudioプログラミングを学び、それらの古いツールを最新のより複雑なサウンドAPIに移植することでした。しかし、最近では、私が以前使っていた工具鍛冶。)

4
Kilian Foth