music模式相关
📎 原始文档:https://www.kdocs.cn/l/cuT9rnmOte3U music模式相关
- music开发接口文档 music模式主要是本地播放功能,SD卡音乐播放、U盘音乐播放等,常用文档介绍
music应用详细设计说明书.pdf music_player接口设计说明文档.pdf 里面系统介绍了music 模式下的所有接口实例。
二、音乐播放器相关接口汇总
主要是播放器的执行播放接口、执行操作类接口、内容获取类接口等接口;所有的函数均在music_player.h,该函数具有接口定义的注释说明:
三、播放器解码格式
播放器的解码支持普通MP3/WAV/PCM格式,也支持无损FLAC/AAC等格式,可根据实际来选择开启对应的功能。
| 格式 | 码率(单位kbps) | 采样率(单位Hz) | 位宽 | 声道 |
|---|---|---|---|---|
| aac/m5a | 8~576 | 8k/11025/12k/16k/22050/24k/32k/44100/48k | 16bit 【解码出来的位宽】 | 单/双声道 |
| amr | 4.75/5.15/5.9/6.7/7.4/7.95/102/12.2 | 8k | 16bit 【解码出来的位宽】 | 单声道 |
| dts | 32~3840 | 8k/11025/12k/16k/22050/24k/32k/44100/48k | 16bit 【解码出来的位宽】 | 5.1声道 |
| alac | 1、无损格式一般压缩比为50%左右,编码好的文件都是vbr的, 要完成编码后才知道具体码率,各种码率解码器都可以支持, 速度瓶颈在读数据(设备读速度) 2、ape解码支持可支持Fast/Normal/High这3种,有的SDK速 度不够,可能会限制不支持High模式,使用Monkey's Audio 压缩工具编码High文件可测试。 | 8k/11025/12k/16k/22050/24k/32k/44100/48k | 16bit | 单/双声道 |
| ape | 8k/11025/12k/16k/22050/24k/32k/44100/48k | 16bit | 单/双声道 | |
| flac | 8k/11025/12k/16k/22050/24k/32k/44100/48k | 16bit | 单/双声道 | |
| mp3 | 全码率,支持layer1,layer2,layer3 | 8k/11025/12k/16k/22050/24k/32k/44100/48k | 16bit 【解码出来的位宽】 | 单/双声道 |
| wav | 码率有留个上限const变量WAV_MAX_BITRATEV给外部配置, 超过上限码率的返回不支持。例如 12bit2ch48k的pcm, 码率较高 【不支持3bit ima,alaw,ulaw等】 | 8k/11025/12k/16k/22050/24k/32k/44100/48k | wav支持8/16/24/32bit的pcm, 4bit的ima跟4bit ms adpcm | 单/双声道 |
| wma | 支持Windows Media Audio中非加密的格式 【不支持Windows Media Audio Professional, Windows Media Audio Lossless,Windows Media Audio Voice,或者 加密的文件】 | 8k/11025/12k/16k/22050/24k/32k/44100/48k | 16bit 【解码出来的位宽】 | 单/双声道 |
| g726 | 8k,16k | 支持4bit的解码,解码出来的位宽为16bit | 单声道 | |
| midi | 8k/11025/12k/16k/22050/24k/32k/44100/48k | 16bit 【解码出来的位宽】 | 双声道 |
四、常用接口使用实例
- 获取存储设备剩余容量
int fget_free_space(const char *path, u32 *space); 函数返回值单位为KB
//sd0
u32 free_space = 0;
fget_free_space("storage/sd0/C/",&free_space);
printf("free_space %d\n",free_space);
//sd1
u32 free_space = 0;
fget_free_space("storage/sd1/C/",&free_space);
printf("free_space %d\n",free_space);
//USB
u32 free_space = 0;
fget_free_space("storage/udisk0/C/",&free_space);
printf("free_space %d\n",free_space);
2、获取储存设备总容量
//sd0
struct vfs_partition *part;
part = fget_partition("storage/sd0/C/");
printf("total_size %dKB - %d MB,clust size %d\n",part->total_size,part->total_size/1024,part->clust_size);
//sd1
struct vfs_partition *part;
part = fget_partition("storage/sd1/C/");
printf("total_size %dKB - %d MB,clust size %d\n",part->total_size,part->total_size/1024,part->clust_size);
//USB
struct vfs_partition *part;
part = fget_partition("storage/udisk0/C/");
printf("total_size %dKB - %d MB,clust size %d\n",part->total_size,part->total_size/1024,part->clust_size);
3、文件系统支持设备参数
支持文件夹个数:2^32个
支持文件个数:2^32 个
支持文件深度:9层
支持最大容量:128PB
支持系统:支持fat12\16\32\exfat