567
社区成员




void goto_main_menu(void)
{
// ...
audio_play_entry();
return;// 直接返回,因为我不想让它做其他的了
// ...
}
void audio_play_entry(void)
{
EntryNewScreen(MAIN_MENU_SCREENID, NULL, audio_play_entry, NULL);
clear_screen();
gui_move_text_cursor(50, 100);
gui_set_text_color(UI_COLOR_RED);
gui_print_text(L"Audio Player");
gui_BLT_double_buffer(0, 0, UI_device_width - 1, UI_device_height - 1);
SetKeyHandler(play_mp3_file, KEY_LSK, KEY_EVENT_UP); // 左软键,播放mp3
SetKeyHandler(GoBackHistory, KEY_RSK, KEY_EVENT_UP);// 右软键
}
void play_mp3_file(void)
{
mdi_result result;
mdi_audio_set_volume(VOL_TYPE_MEDIA, MDI_AUD_VOL_EX(10));
result = mdi_audio_play_file_with_vol_path(
"D:\\audio\\a.mp3",
DEVICE_AUDIO_PLAY_ONCE,
NULL,
EndPlayProc,
10,
MDI_AUD_PTH_EX(MDI_DEVICE_SPEAKER2));
if (MDI_AUDIO_SUCCESS == result)
{
StartTimer(AUDPLY_SINGLE_PLAY_TIMER, 500, OnTimer);
}
else
{
DisplayPopup((U8*)L"mdi faild!", IMG_GLOBAL_OK, 1, 5000, 13);
}
}
void EndPlayProc(mdi_result result)
{
StopTimer(AUDPLY_SINGLE_PLAY_TIMER);
}
void OnTimer(void)
{
StartTimer(AUDPLY_SINGLE_PLAY_TIMER, 500, OnTimer);
}
#define FORMAT_MP3 "5" /* sync with med_main.h */
enum
{
MDI_FORMAT_NONE = -1,
MDI_FORMAT_GSM_FR, /* 0 */
MDI_FORMAT_GSM_HR, /* 1 */
MDI_FORMAT_GSM_EFR, /* 2 */
MDI_FORMAT_AMR, /* 3 */
MDI_FORMAT_AMR_WB, /* 4 */
MDI_FORMAT_DAF, /* 5 */
MDI_FORMAT_AAC, /* 6 */
MDI_FORMAT_PCM_8K, /* 7 */
MDI_FORMAT_PCM_16K, /* 8 */
MDI_FORMAT_G711_ALAW, /* 9 */
MDI_FORMAT_G711_ULAW, /* 10 */
MDI_FORMAT_DVI_ADPCM, /* 11 */
MDI_FORMAT_VR, /* 12 */
MDI_FORMAT_WAV, /* 13 */
MDI_FORMAT_WAV_ALAW, /* 14 */
MDI_FORMAT_WAV_ULAW, /* 15 */
MDI_FORMAT_WAV_DVI_ADPCM, /* 16 */
MDI_FORMAT_SMF, /* 17 */
MDI_FORMAT_IMELODY, /* 18 */
MDI_FORMAT_SMF_SND, /* 19 */
MDI_FORMAT_MMF, /* 20 */
MDI_FORMAT_AU, /* 21 */
MDI_FORMAT_AIFF, /* 22 */
MDI_FORMAT_VRSI, /* 23 */
MDI_FORMAT_WMA, /* 24 */
MDI_FORMAT_M4A, /* 25 */
MDI_FORMAT_3GP, /* 26 */
MDI_FORMAT_MP4, /* 27 */
MDI_FORMAT_JPG, /* 28 */
MDI_FORMAT_GIF, /* 29 */
MDI_FORMAT_MJPG, /* 30 */
MDI_FORMAT_PNG, /* 31 */
MDI_NO_OF_FORMAT
};
FS_HANDLE g_file_handle;
U8 audio_data[1024 * 64];
UINT len;
#define buf_size sizeof(audio_data)
void play_pcm_frame(void)
{
if ((g_file_handle = FS_Open(L"D:\\text\\good.pcm", FS_READ_ONLY)) < 0)
{
DisplayPopup((U8*)L"Open File Failed", IMG_GLOBAL_OK, 1, 5000, 13);
return;
}
while (1)
{
if (FS_NO_ERROR != FS_Read(g_file_handle, audio_data, buf_size, &len))
{
DisplayPopup((U8*)L"Read File Failed", IMG_GLOBAL_OK, 1, 5000, 13);
FS_Close(g_file_handle);
return;
}
mdi_audio_play_string_with_vol_path(audio_data, buf_size, MDI_FORMAT_PCM_8K, DEVICE_AUDIO_PLAY_ONCE, NULL, NULL, (U8)6, MDI_DEVICE_SPEAKER_BOTH);
if (len < buf_size)
{
break;
}
}
FS_Close(g_file_handle);
}
U8 audio_data[1024];
void Bdc_PlayAudio(void)
{
S32 result = 0;
if(!set_d.volumnswitch)
{
}
else
{
result = mdi_audio_play_file_portion_with_vol_path((void *)pMP3FileName, cwInfo2->m_courseData.m_cRW.m_cNode[g_WordIndex].m_lTime*10,
cwInfo2->m_courseData.m_cRW.m_cNode[g_WordIndex].m_lTime*10 + cwInfo2->m_courseData.m_cRW.m_cNode[g_WordIndex].m_lTimeLast, DEVICE_AUDIO_PLAY_ONCE, &h_handle, mmi_play_callback_hdlr, (U8)(set_d.volumnadjust), /*MDI_DEVICE_SPEAKER_BOTH*/MDI_DEVICE_SPEAKER2);
}
}