資源簡介
支持mp3,wav,ape,flac等格式的音頻,支持sd卡,支持中文日文等字庫,可以通過OLED屏幕顯示當(dāng)前的歌曲信息,暫不支持歌詞顯示

代碼片段和文件信息
#include?“audioplay.h“
#include?“ff.h“
#include?“malloc.h“
#include?“usart.h“
#include?“wm8978.h“
#include?“i2s.h“
#include?“l(fā)ed.h“
#include?“delay.h“
#include?“key.h“
#include?“exfuns.h“??
#include?“text.h“
#include?“string.h“
#include?“oled.h“
#include?“mp3play.h“?
#include?“flacplay.h“?
////////////////////////////////////////////////////////////////////////////////// ?
//本程序只供學(xué)習(xí)使用,未經(jīng)作者許可,不得用于其它任何用途
//ALIENTEK?STM32F407開發(fā)板
//音樂播放器?應(yīng)用代碼 ???
//正點(diǎn)原子@ALIENTEK
//技術(shù)論壇:www.openedv.com
//創(chuàng)建日期:2014/5/24
//版本:V1.0
//版權(quán)所有,盜版必究。
//Copyright(C)?廣州市星翼電子科技有限公司?2014-2024
//All?rights?reserved ??
//////////////////////////////////////////////////////////////////////////////////?
?
//音樂播放控制器
__audiodev?audiodev; ??
?
//開始音頻播放
void?audio_start(void)
{
audiodev.status=3<<0;//開始播放+非暫停
I2S_Play_Start();
}?
//關(guān)閉音頻播放
void?audio_stop(void)
{
audiodev.status=0;
I2S_Play_Stop();
}??
//得到path路徑下目標(biāo)文件的總個數(shù)
//path:路徑 ????
//返回值:總有效文件數(shù)
u16?audio_get_tnum(u8?*path)
{ ??
u8?res;
u16?rval=0;
? DIR?tdir; ? //臨時目錄
FILINFO?tfileinfo; //臨時文件信息
u8?*fn;? ? ??? ?????
????res=f_opendir(&tdir(const?TCHAR*)path);?//打開目錄
?? tfileinfo.lfsize=_MAX_LFN*2+1; //長文件名最大長度
tfileinfo.lfname=mymalloc(SRAMINtfileinfo.lfsize); //為長文件緩存區(qū)分配內(nèi)存
if(res==FR_OK&&tfileinfo.lfname!=NULL)
{
while(1)//查詢總的有效文件數(shù)
{
????????res=f_readdir(&tdir&tfileinfo);??????? //讀取目錄下的一個文件
????????if(res!=FR_OK||tfileinfo.fname[0]==0)break; //錯誤了/到末尾了退出 ??
????? fn=(u8*)(*tfileinfo.lfname?tfileinfo.lfname:tfileinfo.fname); ?
res=f_typetell(fn);
if((res&0XF0)==0X40)//取高四位看看是不是音樂文件
{
rval++;//有效文件數(shù)增加1
} ????
}??
}?
myfree(SRAMINtfileinfo.lfname);
return?rval;
}
//顯示曲目索引
//index:當(dāng)前索引
//total:總文件數(shù)
void?audio_index_show(u16?indexu16?total)
{
//顯示當(dāng)前曲目的索引及總曲目數(shù)
// LCD_ShowxNum(30+0290index3160X80); //索引
// LCD_ShowChar(30+24290‘/‘160);
// LCD_ShowxNum(30+32290total3160X80);? //總曲目
????OLED_ShowNum(300index316);
OLED_ShowChar(540‘/‘161);
OLED_ShowNum(620total316);
OLED_Fill(016127161);
OLED_Refresh_Gram();
}
?
//顯示播放時間比特率?信息??
//totsec;音頻文件總時間長度
//cursec:當(dāng)前播放時間
//bitrate:比特率(位速)
void?audio_msg_show(u32?totsecu32?cursecu32?bitrate)
{
static?u16?playtime=0XFFFF;//播放時間標(biāo)記 ??????
if(playtime!=cursec) //需要更新顯示時間
{
playtime=cursec;
//顯示播放時間 ?
// LCD_ShowxNum(30270playtime/602160X80); //分鐘
// LCD_ShowChar(30+16270‘:‘160);
// LCD_ShowxNum(30+24270playtime%602160X80); //秒鐘
//? LCD_ShowChar(30+40270‘/‘160);? ???? ?
// //顯示總時間???? ???
//? LCD_ShowxNum(30+48270totsec/602160X80); //分鐘
// LCD_ShowChar(30+64270‘:‘160);
// LCD_ShowxNum(30+72270totsec%602160X80); //秒鐘 ?? ????
// //顯示位率 ???
//??? LCD_ShowxNum(30+110270bitrate/10004160X80);//顯示位率 ?
// LCD_ShowString(30+110+322702001616“Kbps“); ?
OLED_ShowNum(050playtime/60212);
OLED_ShowChar(1250
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2015-08-23?15:21??音樂播放器\
?????目錄???????????0??2015-08-23?15:21??音樂播放器\APP\
?????文件????????6986??2015-08-16?18:08??音樂播放器\APP\audioplay.c
?????文件????????2415??2015-08-02?17:34??音樂播放器\APP\audioplay.h
?????目錄???????????0??2015-08-18?12:05??音樂播放器\AUDIOCODEC\
?????目錄???????????0??2015-08-23?15:21??音樂播放器\AUDIOCODEC\ape\
?????目錄???????????0??2015-08-23?15:21??音樂播放器\AUDIOCODEC\ape\apedec\
?????文件????????8385??2014-07-16?21:18??音樂播放器\AUDIOCODEC\ape\apedec\apedecoder.c
?????文件????????1421??2014-06-28?20:52??音樂播放器\AUDIOCODEC\ape\apedec\apedecoder.h
?????文件????????4469??2014-03-11?08:23??音樂播放器\AUDIOCODEC\ape\apedec\crc.c
?????文件????????4079??2014-03-11?08:23??音樂播放器\AUDIOCODEC\ape\apedec\demac_config.h
?????文件???????13574??2014-06-28?21:08??音樂播放器\AUDIOCODEC\ape\apedec\entropy.c
?????文件????????1296??2014-03-11?08:23??音樂播放器\AUDIOCODEC\ape\apedec\entropy.h
?????文件????????9043??2014-06-28?11:00??音樂播放器\AUDIOCODEC\ape\apedec\filter.c
?????文件????????1640??2014-03-11?08:23??音樂播放器\AUDIOCODEC\ape\apedec\filter.h
?????文件?????????976??2014-03-11?08:23??音樂播放器\AUDIOCODEC\ape\apedec\filter_1280_15.c
?????文件?????????863??2014-03-11?08:23??音樂播放器\AUDIOCODEC\ape\apedec\filter_16_11.c
?????文件?????????974??2014-03-11?08:23??音樂播放器\AUDIOCODEC\ape\apedec\filter_256_13.c
?????文件?????????863??2014-03-11?08:23??音樂播放器\AUDIOCODEC\ape\apedec\filter_32_10.c
?????文件?????????863??2014-03-11?08:23??音樂播放器\AUDIOCODEC\ape\apedec\filter_64_11.c
?????文件???????13804??2014-06-28?14:37??音樂播放器\AUDIOCODEC\ape\apedec\parser.c
?????文件????????4523??2014-06-27?19:09??音樂播放器\AUDIOCODEC\ape\apedec\parser.h
?????文件???????25685??2014-03-11?08:23??音樂播放器\AUDIOCODEC\ape\apedec\predictor-arm.S
?????文件????????9654??2014-03-11?08:23??音樂播放器\AUDIOCODEC\ape\apedec\predictor.c
?????文件????????1218??2014-03-11?08:23??音樂播放器\AUDIOCODEC\ape\apedec\predictor.h
?????文件?????????388??2014-03-11?08:23??音樂播放器\AUDIOCODEC\ape\apedec\SConsc
?????文件????????3902??2014-03-11?08:23??音樂播放器\AUDIOCODEC\ape\apedec\vector_math_generic.h
?????文件????????8188??2015-08-02?17:35??音樂播放器\AUDIOCODEC\ape\apeplay.c
?????文件????????1448??2014-06-29?12:28??音樂播放器\AUDIOCODEC\ape\apeplay.h
?????目錄???????????0??2015-08-23?15:21??音樂播放器\AUDIOCODEC\flac\
?????目錄???????????0??2015-08-23?15:21??音樂播放器\AUDIOCODEC\flac\flacdec\
............此處省略420個文件信息
評論
共有 條評論