Karaoke 歌曲播放

歌曲播放流程

singersong界面点击列表

FormSingerSong::handlePlayClicked

  • 请求预约歌曲插入

    • 判断已经预约歌曲个数
    • 添加预约歌曲
      • 请求歌曲信息
      • 保存预约歌曲ID
        • 保存信息到 ../KARAOKE/CFG/ProgIdEx.bin
  • 跳转到播放界面

    • onActivated里播放歌曲appKRK playNextSong
      • if (config->getValue(“Random”))
        • 请求第一个预约歌曲 请求失败的话请求预约歌曲插入
      • if(reqDB != NULL && reqDB->ReqReservedSongCount() > 0)
        • 请求第一个预约歌曲 成功的话删除第一个预约歌曲
        • 通过歌曲下标播放歌曲

播放类型

  • 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);

你可能感兴趣的:(数据结构,-,AC自动机)