ubuntu下和开发板下播放音乐
直接在終端輸入“sudo apt-get install audacious”就能安裝。
MP3播放器
(一)?移植madplay播放器開源軟件,實施步驟:
a)?安裝WM8960聲卡驅動
i.?從ftp/project/獲取聲卡驅動sound_driver.rar
1.?在windows解壓縮,獲取一下文件內容
a)?audio_logo_rhgz_wm.tar.gz,針對于開發板背面標注”融匯廣澤”的聲卡驅動
b)?audio_logo_tarena_wm.tar.gz,針對于開發板背面標注”Tarena”的聲卡驅動
注意:自行選擇適合自己的驅動包,然后在windows下解壓縮,獲取文件:
build.sh?//驅動安裝腳本
s5pv210_wm8960.ko?//wm8960聲卡IO初始化驅動
wm8960.ko?//wm8960聲卡驅動
ii.?創建驅動存放目錄
1.?mkdir??/opt/project/drivers/wm8960
2.?cp?build.sh?/opt/project/drivers/wm8960/
3.?cp?s5pv210_wm8960.ko?/opt/project/drivers/wm8960/
4.?cp?wm8960.ko?/opt/project/drivers/wm8960/
iii.?拷貝驅動到開發板
1.?cp?build.sh?/opt/rootfs/drivers/
2.?cp?s5pv210_wm8960.ko?/opt/rootfs/drivers/
3.?cp?wm8960.ko?/opt/rootfs/drivers/
????增加權限
sudo?chmod?777?/opt?-R
sudo?chown?tarena?/opt?-R?
sudo?chgrp?tarena?/opt?-R?
?
b)?移植libmad解碼底層操作庫(madplay僅僅是libmad的一個應用)
1.?從ftp/project獲取libmad源碼libmad-0.15.1b.tar.gz
2.?創建libmad源碼存放目錄
a)?mkdir??/opt/project/mp3/
b)?cp?libmad-0.15.1b.tar.gz?/opt/project/mp3
c)?cd?/opt/project/mp3
d)?tar?–xvf?libmad-0.15.1b.tar.gz
e)?cd?libmad-0.15.1b
f)??make?clean
g)??./configure?CC=arm-linux-gcc?--host=arm-linux?--prefix=/opt/project/mp3/to_arm?
//指定編譯生成的動態庫的安裝目錄為/opt/project/mp3/to_arm/
?
./configure??--prefix=/opt/project/mp3/to_arm?CC=arm-linux-gcc?--host=arm-linux
h)??make
i)??make?install
j)?查看編譯成果?cd?/opt/project/mp3/to_arm
c)?移植libid3tag開源MP3?TAG庫,它依賴libz庫
i.?先移植libz庫
a)?從ftp/project下載源碼zlib-1.2.3.tar.gz
b)?cp?zlib-1.2.3.tar.gz?/opt/project/mp3
c)?cd?/opt/project/mp3
d)?tar?-xvf?zlib-1.2.3.tar.gz
e)?cd?zlib-1.2.3
f)?make?clean
g)?./configure?--shared?--prefix=/opt/project/mp3/to_arm
h)?vi?Makefile
i)?19?CC=arm-linux-gcc?-shared?-Wl,-soname,libz.so.1??//在第19行
j)?28?LDSHARED=arm-linux-gcc??//在第28行
k)?29?CPP=arm-linux-gcc?-E
l)?36?AR=arm-linux-ar?rc
m)?37?RANLIB=arm-linux-ranlib
n)?保存退出
o)?make
p)?make?install
ii.?再移植libid3tag庫
a)?從ftp/project/獲取源碼libid3tag-0.15.1b.tar.gz
b)?cp?libid3tag-0.15.1b.tar.gz?/opt/project/mp3
c)?cd?/opt/project/mp3/
d)?tar?-xvf?libid3tag-0.15.1b.tar.gz
e)?cd?libid3tag-0.15.1b
f)?./configure?CC=arm-linux-gcc?--host=arm-linux?--prefix=/opt/project/mp3/to_arm
g)?make
h)?make?install
d)?移植madplay播放器
1.?從ftp/project/獲取源碼madplay-0.15.2b.tar.gz
2.?cp?madplay-0.15.2b.tar.gz?/opt/project/mp3/
3.?cd?/opt/project/mp3
4.?tar?-xvf?madplay-0.15.2b.tar.gz
5.?cd?madplay-0.15.2b
6.?./configure?CC=arm-linux-gcc?--host=arm-linux?--prefix=/opt/project/mp3/to_arm?CPPFLAGS=-I/opt/project/mp3/to_arm/include?LDFLAGS=-L/opt/project/mp3/to_arm/lib
7.?make
8.?make?install
e)?開發板測試
1.?拷貝交叉編譯后生成的動態庫和可執行程序到開發板
a)?mkdir?/opt/rootfs/home/mp3
b)?mkdir?/opt/rootfs/home/mp3/song
c)?cp /opt/project/mp3/to_arm/lib?/opt/project/mp3/to_arm/bin/??/opt/rootfs/home/mp3?–frd
d)?cp?shanghaitan.mp3?/opt/rootfs/home/mp3/song?//拷貝歌曲到開發板
e)?vim?/opt/rootfs/etc/profile?文件最后添加動態庫的環境變量
export?LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/mp3/lib
2.?開發板執行
?insmod?/drivers/wm8960.ko?
?insmod?/drivers/s5pv210_wm8960.ko?
/home/mp3/bin/madplay??/home/mp3/song/love.mp3
?
?
f)?熟悉madplay參數的使用
i.?–r //重復執行
1.?/home/mp3/bin/madplay??-r?/home/mp3/song/*.mp3?//重復播放所有的歌曲
ii.?按鍵盤的“-”減號降低音量
iii.?按鍵盤的”+”加號升高音量
iv.?按鍵盤的”s”停止播放
v.?按鍵盤的”c”繼續播放
vi.?按鍵盤的”>”下一首
vii.?按鍵盤的”f”上一首
?
g)?改造madplay源碼支持網絡控制播放器的操作
vi?player.c?
?添加頭文件
#include?<sys/socket.h>
#include?<netinet/in.h>
#include?<arpa/inet.h>
?
i.?cd?/opt/project/mp3/?madplay-0.15.2b
ii.?vim?player.c?+120?定義udp套接字文件描述符
1.?static?int?socketfd?=?-1;
保存退出
?
iii.?vim?player.c?//找到setup_tty函數,在函數開頭添加以下代碼:
/*?創建?server端*/
??socketfd?=?socket(PF_INET,SOCK_DGRAM,0);
??if(socketfd<0){perror("socket");return?-1;}
??struct?sockaddr_in?si;
??si.sin_family?=?AF_INET;
??si.sin_port?=?htons(2000);
??si.sin_addr.s_addr?=?INADDR_ANY;
??if(bind(socketfd,(struct?sockaddr*)&si,?sizeof(si))<0){
??????????perror("bind");return?-1;
??}
保存退出
?
iv.?vim?player.c?找到tty_filter函數
struct?player?*player?=?data;
enum?mad_flow?flow?=?MAD_FLOW_CONTINUE;
int?command?=?0,?stopped?=?0;
//command?=?readkey(0);??//注釋掉詞句,不再響應按鍵操作
//并且在后面添加網絡控制支持代碼,如下:
//獲取網絡數據
recvfrom(socketfd,?&command,?4,?MSG_DONTWAIT,?NULL,?0);
保存退出
?
?
v.?重新編譯maplay
1.?make?clean
2.?make
3.?make?install
4.?cp?/opt/project/mp3/madplay-0.15.2b/madplay?/opt/rootfs/home/mp3/bin/
vi.?編寫mp3播放操作庫函數
1.?從ftp/project/下載參考代碼mp3_hwlib.tar.bz2
a)?Mp3.h?//聲明
b)?Mp3.c?//定義
c)?Mp3lib_test.c?//調用測試
?
?
??3.3.制作動態庫
???? arm-linux-gcc?-shared?-fpic?-o?libmp3.so?mp3.c
arm-linux-gcc?-shared?-fpic?-o?libclient.so?client.c
????3.4.交叉編譯測試用例
????????arm-linux-gcc?-o?mp3lib_test?mp3lib_test.c?-L.?-lmp3
?
創建動態庫和測試用例的存放目錄
cp?libmp3.so?/opt/rootfs/home/applib
cp?libclient.so?/opt/rootfs/home/applib
????????cp?mp3lib_test?/opt/rootfs/home/apptest
?
?4.開發板進行測試:測試硬件,測試驅動,測試動態庫?????
?????vim?/opt/rootfs/etc/profile?最近最后添加動態庫的支持:
?????export?LD_LIBRARY_PATH=/home/applib:$LD_LIBRARY_PATH
?
?重啟開發板
?????開發板上執行:
?insmod?/drivers/wm8960.ko?
?insmod?/drivers/s5pv210_wm8960.ko?
/home/mp3/bin/madpaly?-r?/home/mp3/song/love.mp3
?
?
vii.?編寫QT前端播放器界面
a)?從ftp/project/下載參考代碼mp3_qt.tar.bz2
??
?5.7.1.生成工程文件
???? cd?/opt/project/ehome/mp3
???? /opt/project/qt/bin/qmake?-project
????
????5.7.2.打開ehome的工程文件
?????vim?/opt/project/mp3.pro添加如下語句:
????? INCLUDEPATH?+=?/opt/project/hwlib/mp3
LIBS?+=?-L/opt/project/hwlib/mp3?-lmp3
5.7.3.生成Makefile
??/opt/project/qt/bin/qmake
5.7.4.編譯mp3
???????make
5.7.5.創建QT圖形界面的存放目錄
??????mkdir?/opt/rootfs/home/appbin
??????cp?mp3?/opt/rootfs/home/appbin
5.7.6.開發板上測試:
?????????????????????????insmod?drivers/wm8960.ko?//加載驅動
insmod?drivers/s5pv210_wm8960.ko?
????/home/appbin/mp3?-qws????
?
?
?
?
?
總結
以上是生活随笔為你收集整理的ubuntu下和开发板下播放音乐的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 第五部分 自定义的Calendar接口示
- 下一篇: u-boot Makefile完全解读