歌曲播放流程
singersong界面点击列表
FormSingerSong::handlePlayClicked
请求预约歌曲插入
- 判断已经预约歌曲个数
- 添加预约歌曲
- 请求歌曲信息
- 保存预约歌曲ID
- 保存信息到 ../KARAOKE/CFG/ProgIdEx.bin
跳转到播放界面
- onActivated里播放歌曲appKRK playNextSong
- if (config->getValue(“Random”))
- 请求第一个预约歌曲 请求失败的话请求预约歌曲插入
- if(reqDB != NULL && reqDB->ReqReservedSongCount() > 0)
- 请求第一个预约歌曲 成功的话删除第一个预约歌曲
- 通过歌曲下标播放歌曲
- if (config->getValue(“Random”))
- onActivated里播放歌曲appKRK playNextSong
播放类型
- PLAYER_TYPE_NONE = 0,
- PLAYER_TYPE_VIDEO, 视频
- PLAYER_TYPE_MUSIC, 音乐
- PLAYER_TYPE_PICTURE,
- PLAYER_TYPE_MUS, 音符图标
- PLAYER_TYPE_COUNT,
音符歌曲播放 类型 MUS
FormPlay 播放下一首歌曲
- 请求第一个预约歌曲
- 请求失败的话请求随机歌曲插入预约
如果预约数大于0且请求到了第一个预约歌曲
- 删除第一个预约歌曲
通过下标播放歌曲
- 通过下标请求歌曲名,文件类型,媒体类型
- db设置播放类型PLAY_SONG_TYPE_MIDI
添加到MyHot列表(相当于添加到最近播放)
- 请求第一个预约歌曲
播放bug
- 初设背景为图片并当前背景为图片时,MUK可以播放
- 背景为图片时播放MTV,同时显示了背景图片和MTV
英文键盘按键对应处理
WIN32:
#define M3D_UI_KEY_UP mKey_Up
#define M3D_UI_KEY_DOWN mKey_Down
#define M3D_UI_KEY_LEFT mKey_Left
#define M3D_UI_KEY_RIGHT mKey_Right
#define M3D_UI_KEY_ENTER mKey_Enter
#define M3D_UI_KEY_POWER mKey_Power
#define M3D_UI_KEY_MUTE mKey_Mute
#define M3D_UI_KEY_BGV mKey_BGV
#define M3D_UI_KEY_OSD mKey_OSD
#define M3D_UI_KEY_NTSC mKey_NTSC
#define M3D_UI_KEY_HOME mKey_Home
#define M3D_UI_KEY_REPEAT VK_F4 "F4"//'T'
#define M3D_UI_KEY_DELETE mKey_Delete
#define M3D_UI_KEY_COPY mKey_Copy
#define M3D_UI_KEY_NUM_1 mKey_Num_1
#define M3D_UI_KEY_NUM_2 mKey_Num_2
#define M3D_UI_KEY_NUM_3 mKey_Num_3
#define M3D_UI_KEY_NUM_4 mKey_Num_4
#define M3D_UI_KEY_NUM_5 mKey_Num_5
#define M3D_UI_KEY_NUM_6 mKey_Num_6
#define M3D_UI_KEY_NUM_7 mKey_Num_7
#define M3D_UI_KEY_NUM_8 mKey_Num_8
#define M3D_UI_KEY_NUM_9 mKey_Num_9
#define M3D_UI_KEY_PROG mKey_PROG
#define M3D_UI_KEY_NUM_0 mKey_Num_0
#define M3D_UI_KEY_BKSP mKey_BKSP
#define M3D_UI_KEY_KARAOKE mKey_Karaoke
#define M3D_UI_KEY_SELECTED mKey_Selected
#define M3D_UI_KEY_SETUP 0X53 //'U'---'S':houhs reset
#define M3D_UI_KEY_RETURN VK_F9 // key return , F9 on PC
#define M3D_UI_KEY_PLAY VK_CONTROL // key play, left Ctrl on PC keyboard :houhs add
#define M3D_UI_KEY_STOP mKey_Stop
#define M3D_UI_KEY_PAUSE VK_SPACE //' 'WIN空格暂停
#define M3D_UI_KEY_NEXT mKey_Next
#define M3D_UI_KEY_KEYUP mKey_Keyup
#define M3D_UI_KEY_KEYDOWN mKey_Keydown
#define M3D_UI_KEY_TEMPOUP mKey_Tempoup
#define M3D_UI_KEY_TEMPODOWN mKey_Tempodown
#define M3D_UI_KEY_VOLUP mKey_Volup
#define M3D_UI_KEY_VOLDOWN mKey_Voldown
#define M3D_UI_KEY_MELODY_UP mKey_Melodyup
#define M3D_UI_KEY_MELODY_DOWN mKey_Melodydown
#define M3D_UI_KEY_RECORD mKey_Record
#define M3D_UI_KEY_VOCAL mKey_Vocal
#define M3D_UI_KEY_CHEER mKey_Cheer
#define M3D_UI_KEY_PREV mKey_Prev
#define M3D_UI_KEY_MTV VK_F2 "F2" //
#define M3D_UI_KEY_MP3 VK_F1 "F1" //
#define M3D_UI_KEY_MOVIE VK_F3 "F3" //
#define M3D_UI_KEY_FAVORITE mKey_Favorite
#define M3D_UI_KEY_ECHOUP mKey_other_Melodyup
#define M3D_UI_KEY_ECHODOWN mKey_other_Melodydown
PlayParam _playParam;
_playParam.SongPath = d_songPath;
M3D_DebugPrint("-------+++filepath====%s______", d_songPath.c_str());
_playParam.RecordPath = g_DownloadPath + "tmpRec.MP3";
//------need not change------------------
_playParam.IsRecord = false;
_playParam.NeedRecord = false;
_playParam.accomVol = 100;
_playParam.voiceVol = 100;
_playParam.micVolL = 100;
_playParam.micVolR = 100;
_playParam.wmicVolL = 100;
_playParam.wmicVolR = 100;
_playParam.echoVal = 100;
_playParam.tempoVal = 1000;
_playParam.toneVal = 0;
_playParam.FileType = d_fileType;
ret = (player->playSong(_playParam) == true);