0. 修改mplayer
luther@gliethttp:/usr/bin$ sudo mv mplayer raw.mplayer
luther@gliethttp:/usr/bin$ sudo vim mplayer
# 追加如下一行内容
raw.mplayer -ao alsa $*
luther@gliethttp:~/mp3$ mplayer *
1. 使用speaker-test
luther@gliethttp:~$ speaker-test -Dplug:front -c2
但是出现如下错误提示:
ALSA lib pcm_dmix.c:1010:(snd_pcm_dmix_open) unable to open slave
Playback open error: -16,Device or resource busy
原因:VirtualBox中winxp起来之后,占用了声音,所以出现这样的提示,将VirtualBox中winxp关闭即可正常,由此可以看出来speaker-test和aplay使用的OSS架构通过/dev/dsp设备节点操作声卡
2. 使用aplay播放wav文件-aplay能够自适应wav格式,这远比/dev/dsp的oss方便多,免去了cat 8k_8bits_mon.wav > /dev/dsp默认格式数据制作的麻烦[luther.gliethttp].
luther@gliethttp:~/.wine/drive_c/AudioConverter$ ll
total 459M
-rw-r--r-- 1 luther luther 75M 2009-12-08 13:39 chujia.wav
-rw-r--r-- 1 luther luther 75M 2009-12-08 13:40 chujia_48000.wav
-rw-r--r-- 1 luther luther 206M 2009-12-08 13:40 出嫁.mp3
-rw-r--r-- 1 luther luther 103M 2009-12-08 13:42 chujia-1.wav
-rw-r--r-- 1 luther luther 206M 2009-12-08 13:43 出嫁.wav
luther@gliethttp:~/.wine/drive_c/AudioConverter$ aplay 出嫁.wav
Playing WAVE 'chujia-2.wav' : Signed 24 bit Little Endian in 3bytes, Rate 44100 Hz, Channels 6
Invalid rate plugin version 10002
或者使用
luther@gliethttp:~/.wine/drive_c/AudioConverter$ aplay -Dplug:dmix 出嫁.wav
3. alsa测试5.1声道
luther@gliethttp:~$ speaker-test -Dplug:surround51 -c6 -twav
speaker-test 1.0.21
Playback device is plug:surround51
Stream parameters are 48000Hz, S16_LE, 6 channels
WAV file(s)
Rate set to 48000Hz (requested 48000Hz)
Buffer size range from 3 to 5461
Period size range from 3 to 5461
Using max buffer size 5460
Periods = 4
was set period_size = 1365
was set buffer_size = 5460
0 - Front Left
4 - Center
1 - Front Right
3 - Rear Right
2 - Rear Left
5 - LFE
Time per period = 8.531396
0 - Front Left
4 - Center
或者使用plugin方式播放,但是仍然不能与mplayer同时播放
luther@gliethttp:~$ speaker-test -Dplug:front -c6 -twav
或者
luther@gliethttp:~/mp3$ speaker-test -Dplug:dmix -c6 -twav
打开pcm设备时用snd_pcm_open(&handle, "default", SND_PCM_STREAM_PLAYBACK, 0)就直接打开hw而不会进过plugin层
当前pcm支持的所有功能插件--来自alsa-lib-1.0.21a/configure|21776|
PCM_PLUGIN_LIST="copy
linear route mulaw alaw adpcm rate plug multi shm file null empty share
meter hooks lfloat ladspa dmix dshare dsnoop asym iec958 softvol
extplug ioplug mmap_emul"
aplay能够smplayer同时播放,但是不能与终端上的mplayer一起播放,原因是这样的,mplayer默认使用oss方式操作声卡,因为oss是独占声卡,所以当然就出现了,当aplay打开后,打开mplayer,因为声卡被aplay占用,mplayer将等待直到aplay释放声卡为止,而当mplayer先打开播放,那么因为oss使得声卡被mplayer独占,所以aplay老是提示:Device or resource busy,解决方法就是,让mplayer使用alsa驱动播放数据:
luther@gliethttp:~/.wine/drive_c/AudioConverter$ mplayer -ao alsa 出嫁.mp3
luther@gliethttp:~/.wine/drive_c/AudioConverter$ aplay 出嫁.wav
luther@gliethttp:~/.wine/drive_c/AudioConverter$ aplay -v 出嫁.wav 可以打印出stream参数信息
这样mplayer和aplay就可以同时使用了[luther.gliethttp]
阅读(6219) | 评论(0) | 转发(0) |