1.先安装
1.madplay-0.15.2b.tar.gz
2.libmad-0.15.1b.tar.gz
3 libid3tag-0.15.1b.tar.gz
方法是:./configure sudo make sudo make install
prefix = /usr/local 中prefix 为make install的安装目录,默认在/usr/loacl
如果希望安装到其他目录
./configure --prefix=/安装目录路径
4.执行madplay 播放mp3
先加载动态库 :如
export LD_LIBRARY_PATH=/usr/local/lib
播放mp3
./madplay 1.mp3 2.mp3 3.mp3
madpay功能很强求,可以实现多个节目循环播放,快进拖动播放,暂停,恢复,支持wav等格式输出等。
目前madplay还不支持网络播放.不过mp123支持网络播放。
madplay使用方法: 传入打印既可以使用短传入(-n ),也可以使用长传入(--abc),二者等效,下面只讲短传入
-v 获取播放时间
-q 不存在任何打印,但现实警告
-Q 不存在任何打印
--downsample 只采用一半数据
-i 忽略CRC校验错误
-o PATH/xx.wav 可以用来转码,将mp3转为wav
也可以是其他格式,见说明;.raw 表示是元素pcm,.hex等
-a 开启衰减音量 ,增加音量,衰减系统为-175~+18 (当然通过键盘+ —也可以调整音量)
-A 同-a
-1 -2 -m -S 分别指左声道,右声道,双声道,立体声
-s 用于seek播放 如:0:1:20:11 ,seek到1小时,2分钟,11秒时开始播放
-t 用于播放时间现在 0:1:20:11 ,播放到1小时,2分钟,11秒时就停止
-z 用于随机播放列表
-r, --repeat[=MAX] 循环播放无限次或Max次
--tty-control enable keyboard controls 默认是使能热键
--no-tty-control disable keyboard controls
热键使用
下一首歌曲; f,或ctrl+n 或者>
上一首歌曲 b ,或ctrl+p 或者<
退出:q, Q,获取ctrl+c
获取播放状态信息: i ?
调节音量: - + _ =
暂停恢复:p
停止:s
Usage: ./madplay [OPTIONS] FILE [...]
Decode and play MPEG audio FILE(s).
Verbosity:
-v, --verbose show status while decoding
-q, --quiet be quiet but show warnings
-Q, --very-quiet be quiet and do not show warnings
--display-time=MODE use default verbose time display MODE
(remaining, current, overall)
Decoding:
--downsample reduce sample rate 2:1
-i, --ignore-crc ignore CRC errors
--ancillary-output=PATH write ancillary data to PATH
Audio output:
-o, --output=[TYPE:]PATH write output to PATH with format TYPE (below)
-b, --bit-depth=DEPTH request DEPTH bits per sample
-R, --sample-rate=HERTZ request HERTZ samples per second
-d, --no-dither do not dither output PCM samples
--fade-in[=DURATION] fade-in songs over DURATION (default 0:05)
-a, --attenuate=DECIBELS attenuate signal by DECIBELS (-)
-a, --amplify=DECIBELS amplify signal by DECIBELS (+)
-A, --adjust-volume=DECIBELS override per-file volume adjustments
-G, --replay-gain[=PROFILE] enable Replay Gain volume adjustments using
PROFILE (radio, audiophile)
Channel selection:
-1, --left output first (left) channel only
-2, --right output second (right) channel only
-m, --mono mix left and right channels for monaural output
-S, --stereo force stereo output
Playback:
-s, --start=TIME skip to begin at TIME (HH:MM:SS.DDD)
-t, --time=DURATION play only for DURATION (HH:MM:SS.DDD)
-z, --shuffle randomize file list
-r, --repeat[=MAX] play files MAX times, or indefinitely
--tty-control enable keyboard controls
--no-tty-control disable keyboard controls
Miscellaneous:
-T, --show-tags-only show ID3/encoder tags only (do not decode)
-V, --version display version number and exit
--license show copyright/license message and exit
-h, --help display this help and exit
Supported output formats:
cdda CD audio, 16-bit big-endian 44100 Hz stereo PCM (*.cdr, *.cda)
aiff Audio IFF, [16-bit] PCM (*.aif, *.aiff)
wave Microsoft RIFF/WAVE, [16-bit] PCM (*.wav)
snd Sun/NeXT audio, 8-bit ISDN mu-law (*.au, *.snd)
raw binary [16-bit] host-endian linear PCM
hex ASCII hexadecimal [24-bit] linear PCM
null no output (decode only)
实际项目中可以将该应用封装成一个库(将main函数封装成一个接口)提供给上层用,而热键动作,可以创建一个读按键线程,或者另一个播放器发消息来控制动作,完成对播放器的控制。输出要根据平台不同,将pcm摔倒不同驱动中。