Chinaunix首页 | 论坛 | 博客
  • 博客访问: 15358579
  • 博文数量: 2005
  • 博客积分: 11986
  • 博客等级: 上将
  • 技术积分: 22535
  • 用 户 组: 普通用户
  • 注册时间: 2007-05-17 13:56
文章分类

全部博文(2005)

文章存档

2014年(2)

2013年(2)

2012年(16)

2011年(66)

2010年(368)

2009年(743)

2008年(491)

2007年(317)

分类:

2009-12-08 16:12:40

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]
阅读(5699) | 评论(0) | 转发(1) |
给主人留下些什么吧!~~