概述
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));
应该是 L"D:\audio\a.mp3"
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);
}
}
MMI_BOOL
U8
U32
U8 *
mdi_result
audio_data = get_audio((U16) (g_tonesel_cntx.highlight_audioid), &audio_type, &audio_len);
if (audio_data != NULL)
{
}
mdi_result mdi_audio_stop_string(void)
void Play_sound(U16 gobang_aud_id)
{
}
U16 GetParentHandler(void)
{
}
void SetParentHandler(U16 parentID)
{
}
void mmi_entry_main_multimedia_screen(void)
{
}
void mmi_main_menu_entry(void)
{
}
#if 1// jt
#include "MMI_features.h"
#include "mmi_rp_all_defs.h"
#include "mdi_audio.h"
#include "TimerEvents.h"
#include "device.h"
#include "MMIDataType.h"
extern S32 volume_level_UI;
extern U8 *get_audio(MMI_ID_TYPE i, U8 *type, U32 *filelen);
typedef struct
{
}sound_menuitem;
U16 g_menuitem_aud_id = 0;
sound_menuitem g_menuitem_sound[] = {
{MAIN_MENU_MESSAGES_MENUID,
{MAIN_MENU_PHONEBOOK_MENUID,
{MAIN_MENU_CALL_CENTER,
{MAIN_MENU_ORGANIZER_MENUID,
{MAIN_MENU_MULTIMEDIA_MENUID,
{MAIN_MENU_AUDIO_PLAYER,
{MAIN_MENU_FILE_MNGR_MENUID,
{MAIN_MENU_PROFILES_MENUID,
{MAIN_MENU_FUNANDGAMES_MENUID,
{MAIN_MENU_SETTINGS_MENUID,
{MAIN_MENU_BT_CONNECTIVITY,
{MAIN_MENU_SERVICES_MENUID,
};
U16 g_dialer_sound[] = {
MENUITEM_AUD_ID_DIAL_0,
MENUITEM_AUD_ID_DIAL_1,
MENUITEM_AUD_ID_DIAL_2,
MENUITEM_AUD_ID_DIAL_3,
MENUITEM_AUD_ID_DIAL_4,
MENUITEM_AUD_ID_DIAL_5,
MENUITEM_AUD_ID_DIAL_6,
MENUITEM_AUD_ID_DIAL_7,
MENUITEM_AUD_ID_DIAL_8,
MENUITEM_AUD_ID_DIAL_9,
MENUITEM_AUD_ID_DIAL_STAR,
MENUITEM_AUD_ID_DIAL_HASH,
};
void mmi_menuitem_play_sound_with_aud_id(void)
{
}
U16 mmi_menuitem_get_audio_id(U16 item_id)
{
}
void mmi_menuitem_play_sound(S32 item_index)
{
}
void mmi_dialer_play_sound(S32 key_code)
{
}
#endif
MoDIS.exe!wgui_inputs_dialer_handle_key_down(int k=1)
MoDIS.exe!MMI_key_input_handler(int key_code=1, int key_event=0)
MoDIS.exe!MMI_key_1_down()
MoDIS.exe!exec_key_handler
MoDIS.exe!mmi_frm_exec_key_handler
MoDIS.exe!ExecuteCurrKeyHandler
MoDIS.exe!cui_dialer_input_first_char
MoDIS.exe!cui_dialer_classic_on_enter
MoDIS.exe!cui_dialer_classic_enter(_mmi_scrn_essential_struct * param=0x0627fc18)
MoDIS.exe!mmi_frm_scrn_first_enter_ex
MoDIS.exe!mmi_frm_scrn_first_enter
MoDIS.exe!cui_dialer_classic_on_run(cui_dialer_obj_st * obj=0x035cfa44)
MoDIS.exe!cui_dialer_run(unsigned short this_gid=9)
MoDIS.exe!mmi_dialer_launch_by_key_ex
MoDIS.exe!mmi_dialer_launch_by_key(unsigned short key_code=1)
MoDIS.exe!mmi_idle_entry_dialer_by_key()
(1)
in dialer screen
down event
wgui_inputs_dialer_multitap_handle_star_key_down
{
wgui_dialer_box_star_key_handler.current_position == 0
*
}
wgui_inputs_dialer_handle_hash_key_down
wgui_inputs_dialer_handle_key_down
(2)
from idle screen to dialer screen
down event
mmi_idle_entry_dialer_by_key
但最终数字会调用
wgui_inputs_dialer_handle_key_down
{
#if 1// jt
#endif
}
星号调用
wgui_inputs_dialer_multitap_handle_star_key_down
{
#if 1// jt
#endif
}
井号调用
wgui_inputs_dialer_handle_hash_key_down
{
#if 1// jt
#endif
}
MTK播放声音的函数:
(1).mdi_audio_snd_play_file_with_vol_path();这个函数是播放声音文件的函数,第一个参数是文件的路径,注意如果是U8类型,只能播放英文文件名的函数,一般应将文件名设置为U16型的.
(2).mdi_audio_snd_play_string_with_vol_path();这个函数是播放资源类型的声音文件.
void play_aud_test()
{
U32 audio_len;
U8 *audio_data;
U8 audio_type;
U16 repeat = 1; /* Play once */
mdi_result result;
audio_data = get_audio((U16) (AUD_ID, &audio_type, &audio_len);
if (audio_data != NULL)
{
result = mdi_audio_snd_play_string_with_vol_path(
(void*)audio_data,
audio_len,
repeat,
NULL,
callback,
volume,
speaker);
}
}
在这个函数里面,先要从资源中根据资源id获取到生硬数据,同时,可以得到声音类型和声音的长度.然后再用该函数播放之.
(3).如果要录音的话,首先要发出请求,mmi_sndrec_send_record_req();然后把录制的数据保存到自己的文件中,这个具体的录制过程不得而知,mtk对其做了封装,只需要发送这个消息给底层就可以了.所录制的声音都保存在SoundRecorder.fullname这个文件里面.
最后
以上就是包容酒窝为你收集整理的MTK声音播放相关的全部内容,希望文章能够帮你解决MTK声音播放相关所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复