### madplay的使用方法嵌入式 在嵌入式系统开发过程中,对于音频处理的需求日益增加,特别是MP3格式的音频文件。`madplay`是一款非常实用的MP3解码器,它支持多种命令行操作模式,使得在嵌入式环境中播放MP3成为可能。本文将详细介绍`madplay`的基本使用方法及其在嵌入式系统中的应用。 ### 一、madplay简介 `madplay`是一款开源的MP3播放器,主要基于Mad Libs MP3库进行构建。它不仅支持命令行模式,还提供了图形界面版本。`madplay`以其高质量的声音输出、低资源消耗以及跨平台兼容性而受到广泛欢迎。在嵌入式系统中,由于资源受限,选择一个轻量级且功能强大的音频解码器尤为重要。 ### 二、安装与配置 #### 安装: 1. **下载源码**:从官方网站或GitHub等平台上下载`madplay`的源代码。 2. **编译安装**:按照官方文档提供的指南,使用`./configure && make && make install`命令完成编译和安装过程。 3. **配置环境变量**:根据实际情况调整环境变量,确保系统能够找到`madplay`程序。 #### 配置: - 在嵌入式系统中,可以根据硬件特性调整编译选项,如禁用不必要的功能以减小体积。 - 可以通过命令行参数来指定解码质量、输出设备等选项。 ### 三、基本命令操作 1. **播放MP3文件**: - `madplay north.mp3`:播放名为`north.mp3`的MP3文件。 - 参数`-r`:可以用于调整播放速率。 2. **控制播放状态**: - 使用`killall -9 madplay`来强制终止所有正在运行的`madplay`进程。 - 使用`killall -STOP madplay`暂停所有`madplay`进程。 - 使用`killall -CONT madplay`继续暂停的`madplay`进程。 3. **信号处理**: - `kill -l`:列出可用的信号及它们的数字和简短描述。 - `man kill`:查看`kill`命令的手册页,了解更详细的信号列表和用法。 ### 四、深入理解命令行操作 #### 播放控制 - `madplay north.mp3 &`:后台播放文件`north.mp3`。 - `killall -9 madplay`:此命令会发送`SIGKILL`信号给所有的`madplay`进程,立即终止它们。需要注意的是,`SIGKILL`信号无法被进程捕获或忽略,这意味着一旦发送了这个信号,进程将被无条件地终止。 - `killall -STOP madplay`:此命令发送`SIGSTOP`信号,暂时挂起所有`madplay`进程。该信号同样不能被进程捕获或忽略,但可以通过`killall -CONT madplay`命令恢复执行。 - `killall -CONT madplay`:发送`SIGCONT`信号,继续之前被暂停的所有`madplay`进程。 #### 信号处理 信号是操作系统用来通知进程事件发生的一种机制。`madplay`通过接收不同的信号来改变其行为,例如暂停、继续或者终止进程。下面是一些常见的信号及其作用: - **SIGHUP (1)**:挂断信号,通常用于通知进程终端已经关闭。 - **SIGINT (2)**:中断信号,通常由用户按下Ctrl+C触发。 - **SIGQUIT (3)**:退出信号,通常由用户按下Ctrl+\触发。 - **SIGILL (4)**:非法指令信号,当进程执行了不合法的指令时发送。 - **SIGTRAP (5)**:跟踪陷阱信号,通常用于调试。 - **SIGABRT (6)**:用于`abort()`函数。 - **SIGSEGV (11)**:段错误信号,当进程尝试访问无效内存地址时发送。 - **SIGTERM (15)**:软件终止信号,通常用于请求进程正常退出。 ### 五、应用场景示例 假设在一个嵌入式系统中,我们需要开发一个简单的音频播放器,可以实现基本的播放控制功能,包括播放、暂停和停止。 1. **初始化**:首先确保`madplay`已经被正确安装并配置好环境。 2. **播放文件**:通过`madplay north.mp3 &`命令在后台启动播放任务。 3. **暂停播放**:使用`killall -STOP madplay`暂停播放。 4. **继续播放**:使用`killall -CONT madplay`继续播放。 5. **停止播放**:使用`killall -9 madplay`终止播放任务。 通过以上步骤,我们可以在嵌入式系统中实现基本的音频播放功能,并通过命令行控制播放状态。 ### 六、注意事项 1. **信号处理**:在实际应用中,应当注意合理使用信号来控制进程的状态。过度使用信号可能会导致进程不稳定或者行为不可预测。 2. **资源管理**:在嵌入式系统中,资源是非常宝贵的。因此,在使用`madplay`时,应当关注其对系统资源的影响,尤其是在多任务环境下。 3. **编译选项**:在编译`madplay`时,应当根据具体硬件环境选择合适的编译选项,以达到最佳性能和最小资源占用的目的。 通过上述介绍,我们可以了解到`madplay`作为一款优秀的MP3解码器,在嵌入式系统中的强大功能和灵活性。无论是基础的播放控制还是高级的信号处理,`madplay`都能提供稳定可靠的解决方案。
















管理madplay的主程序,包括播放,暂停播放,恢复播放,停止播放
system("madplay north.mp3 &");//利用system函数调用madplay播放器播放*.mp3音乐
system("madplay north.mp3 -r &");//循环播放:参数-r
system("killall -9 madplay");//利用system函数调用killall命令将madplay终止掉
system("killall -STOP madplay &");//利用system函数调用killall命令将madplay暂停
system("killall -CONT madplay &");//利用system函数调用killall命令恢复madplay的播放
kill -l , man kill Here is a list of available signals, their numbers, and some commentary on them, from the file <sys/signal.h>, which should be considered the official source of this information. SIGHUP 1 hangup SIGINT 2 interrupt SIGQUIT 3 quit SIGILL 4 illegal instruction (not reset when caught) SIGTRAP 5 trace trap (not reset when caught) SIGABRT 6 used by abort SIGEMT 7 EMT instruction SIGFPE 8 floating point exception SIGKILL 9 kill (cannot be caught or ignored) SIGBUS 10 bus error SIGSEGV 11 segmentation violation SIGSYS 12 bad argument to system call SIGPIPE 13 write on a pipe with no one to read it SIGALRM 14 alarm clock SIGTERM 15 software termination signal from kill SIGURG 16 urgent condition on IO channel SIGSTOP 17 sendable stop signal not from tty SIGTSTP 18 stop signal from tty SIGCONT 19 continue a stopped process SIGCHLD 20 to parent on child stop or exit SIGTTIN 21 to readers pgrp upon background tty read SIGTTOU 22 like TTIN for output if (tp->t_local<OSTOP) SIGPOLL 23 System V name for SIGIO SIGXCPU 24 exceeded CPU time limit SIGXFSZ 25 exceeded file size limit SIGVTALRM 26 virtual time alarm SIGPROF 27 profiling time alarm SIGWINCH 28 window changed SIGLOST 29 resource lost (eg, record-lock lost) SIGUSR1 30 user defined signal 1 SIGUSR2 31 user defined signal 2 mips:#define SIGHUP 1 /* Hangup (POSIX). */#define SIGINT 2 /* Interrupt (ANSI). */#define SIGQUIT 3 /* Quit (POSIX). */#define SIGILL 4 /* Illegal instruction (ANSI). */#define SIGTRAP 5 /* Trace trap (POSIX). */#define SIGIOT 6 /* IOT trap (4.2 BSD). */#define SIGABRT SIGIOT /* Abort (ANSI). */#define SIGEMT 7#define SIGFPE 8 /* Floating-point exception (ANSI). */#define SIGKILL 9 /* Kill, unblockable (POSIX). */#define SIGBUS 10 /* BUS error (4.2 BSD). */#define SIGSEGV 11 /* Segmentation violation (ANSI). */#define SIGSYS 12#define SIGPIPE 13 /* Broken pipe (POSIX). */#define SIGALRM 14 /* Alarm clock (POSIX). */#define SIGTERM 15 /* Termination (ANSI). */#define SIGUSR1 16 /* User-defined signal 1 (POSIX). */#define SIGUSR2 17 /* User-defined signal 2 (POSIX). */#define SIGCHLD 18 /* Child status has changed (POSIX). */#define SIGCLD SIGCHLD /* Same as SIGCHLD (System V). */#define SIGPWR 19 /* Power failure restart (System V). */#define SIGWINCH 20 /* Window size change (4.3 BSD, Sun). */#define SIGURG 21 /* Urgent condition on socket (4.2 BSD). */#define SIGIO 22 /* I/O now possible (4.2 BSD). */#define SIGPOLL SIGIO /* Pollable event occurred (System V). */#define SIGSTOP 23 /* Stop, unblockable (POSIX). */#define SIGTSTP 24 /* Keyboard stop (POSIX). */#define SIGCONT 25 /* Continue (POSIX). */#define SIGTTIN 26 /* Background read from tty (POSIX). */#define SIGTTOU 27 /* Background write to tty (POSIX). */#define SIGVTALRM 28 /* Virtual alarm clock (4.2 BSD). */#define SIGPROF 29 /* Profiling alarm clock (4.2 BSD). */#define SIGXCPU 30 /* CPU limit exceeded (4.2 BSD). */#define SIGXFSZ 31 /* File size limit exceeded (4.2 BSD). *//* These should not be considered constants from userland. */#define SIGRTMIN 32#define SIGRTMAX _NSIG
关于调用madplay的一些问题?
...............
case MP3_BUTTON01:
{
if((pid = fork()) < 0)
{
perror("Cannot create a new process\n");
return 1;
}
if(pid == 0){
execl("/tmp/madplay.arm","madplay.arm","./res/music/1.mp3",NULL);
sleep(3);


- 粉丝: 7942
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助


最新资源
- 网络卫士安全隔离与信息交换系统技术培训.pptx
- 信息安全体系结构信息系统安全体系研究.pptx
- 扩频通信中直接扩频系统的同步技术.doc
- (源码)基于ESP8266芯片的环境监测系统.zip
- 基于思维导图的网络营销课程教学改革与实践.pdf
- 数字图像处理技术-第02章-MATLAB图像处理简介.ppt
- 2023年9月计算机等级考试二级C语言上机题库100套光碟拷贝版.doc
- sybyl软件与计算机辅助药物设计.pptx
- 最新网络营销工作总结.docx
- 中南大学工程项目管理第三章工程项目投资控制.pptx
- 热油系统安全运行措施.doc
- 计算机信息网络安全检查项目表.doc
- 小学教师计算机培训工作总结.docx
- 中国电信主要网络介绍.ppt
- 软件工程导论习题答桉.doc
- 楼宇自动化与系统集成解决方案--浙大中控.doc


