ps进程没其aplay运行底原
近看ALSA driver尝试android 编译alsa-utils工具面讲述我何进行编译及程遇问题何解决:
首先我ALSA 官网载alsa-utils-1.0.23版本工具我android alsa-lib 1.023版本防止版本现问题我选择版本我alsa-lib放路径android_source/external/alsa-lib目录面我载alsa-utils-1.023工具包载放面
接我需要完几作:
1、alsa-utils面创建Android.mk
写内容:
ifeq ($(strip $(BOARD_USES_ALSA_AUDIO)),true)
LOCAL_PATH:= $(call my-dir)
#
# Build aplay command
#
include $(CLEAR_VARS)
LOCAL_CFLAGS := \
-fPIC -D_POSIX_SOURCE \
-DALSA_CONFIG_DIR=\"/system/usr/share/alsa\" \
-DALSA_PLUGIN_DIR=\"/system/usr/lib/alsa-lib\" \
-DALSA_DEVICE_DIRECTORY=\"/dev/snd/\"
LOCAL_C_INCLUDES:= \
$(LOCAL_PATH)/include \
$(LOCAL_PATH)/android \
external/alsa-lib/include
LOCAL_SRC_FILES := \
aplay/aplay.c
LOCAL_MODULE_TAGS := debug
LOCAL_MODULE := alsa_aplay
LOCAL_SHARED_LIBRARIES := \
libasound \
libc
include $(BUILD_EXECUTABLE)
3、进入第2步创建sys目录sys目录创建signal.h文件文件写内容
[plain] view plaincopyprint?
01.#include <signal.h>
#include <signal.h>4、接直接编译android 编译程能现 错误
4.1:kernel/common/linux/un.h:18: error: expected specifier-qualifier-list before 'sa_family_t
我alsa-utils/alsactl/init_parse.c面include un.h前没#include <sys/socket.h>要前include文件解决
4.2:能遇错误:aplay.c面提示报错'S_IRGRP' undeclared (first use in this function要aplay.c面添加文件:#include <sys/stat.h>,解决
4.3:接能语言错误:speaker-test.c面报wav_file_dir没定义值用定义wav文件存放pad位置随便放哪我定义路径 /sdcard目录面
经面种种修改alsa-utils工具终于编译功
我编译程遇问题
转载
第一次写还有点不习惯,慢慢来吧...
很久以前在淘宝买了一块raspberry pi moduleB+(小派),买回来之后与我的JBL Pebbles音箱(蜗牛)配合起来听音乐是相当的巴适,小音箱自带USB声卡,弥补了小派 bcm音质不足的bug,里面跑过Rune等音乐服务,虽然挺不错的,但是小小的音乐服务霸占树莓派的资源,可是我希望让它一边承担自动音乐播放器一边跑跑自己做的http服务。于是开始diy,sd卡烧写rasbian上电开机,mpb没有网线孔,没法直连小派,思来想去,翻出我的老将thinkpad T430,网线直连通过设置桥接,让小派接入了路由器,(还不是因为是租房,路由器不能直连T_T),接下来终端arp -a扫描所有内网设备,找出小派,尝试ssh,多次尝试失败,直接被拒绝登录...谷歌一番发现新的rasbian为了安全原因默认关闭ssh服务....取下sd,根目录创建一个空的SSH文件,官方文件http://downloads.raspberrypi.org/raspbian/release_notes.txt(神坑...)
ok,接下来先配置rasbian的usb声卡作为默认声卡,编辑/etc/modprobe.d/alsa-base.conf
#options snd-usb-audio index=0
#options snd_bcm2835 index=1
通过翻阅Rune源码发现其内部使用的音乐服务是一个叫MPD的音乐服务程序,是linux下一个基于c/s结构的音乐程序,mpc是一个客户端实现程序,一起安装吧 sudo apt-get install mpd mpc
在pi目录下创建music文件夹存储音乐文件,mpd文件夹来存储mpd云信的配置、缓存文件等等。复制配置文件 cp /etc/mpd.conf ~/mpd/,修改此文件相关配置,终于mpd跑起来了...
copy一个音乐文件到小派上,scp ‘Serebro - Mi Mi Mi.mp3’ pi@192.168.1.123:~/music
添加到音乐列表 mpc -p 18080 add music/*
开始播放骚浪的音乐~ mpc -p 18080 play
欧耶~蜗牛开始嚎叫啦~
后记:
1.mpc 控制音量还有点问题,直接无效。试过amixer改变音量依旧无效,只有alsamixer才有效,不知为何,有空继续研究下
2.到时候把shairport弄上去,手机和电脑也可以直接播放音乐了
3.每次播放音乐需要登录小派终端,看抽空在写一个客户端app简单控制下,那就不错啦
五、由于我板子声音架构为alsa,直接使用madplay播放会出现audio: /dev/dsp: No such file or directory错误。原因是madplay使用oss建构,在网上查找了一些资料,可以用alsa支持oss架构,但是并没有找到比较容易的方法,有待以后学习。
简单解决方法如下:使用madplay解码再使用aplay播放:)在这里向有此伟大想法的不知名网友致敬。
madplay -o wav:- 1.mp3 | aplay
有关aplay等alsa工具移植请参照http://blog.csdn.net/yichi7758/archive/2010/02/26/5328491.aspx
参照博客:http://blog.csdn.net/yichi7758/article/details/5329313
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)