音频播放
创建 ZKMediaPlayer
对象,类型为 ZKMediaPlayer::E_MEDIA_TYPE_AUDIO
static ZKMediaPlayer sPlayer(ZKMediaPlayer::E_MEDIA_TYPE_AUDIO);
注册消息监听
// 消息监听接口如下
class PlayerMessageListener : public ZKMediaPlayer::IPlayerMessageListener {
public:
virtual void onPlayerMessage(ZKMediaPlayer *pMediaPlayer, int msg, void *pMsgData) {
switch (msg) {
case ZKMediaPlayer::E_MSGTYPE_ERROR_INVALID_FILEPATH:
case ZKMediaPlayer::E_MSGTYPE_ERROR_MEDIA_ERROR:
// 出错消息
break;
case ZKMediaPlayer::E_MSGTYPE_PLAY_STARTED:
// 开始播放消息
break;
case ZKMediaPlayer::E_MSGTYPE_PLAY_COMPLETED:
// 播放结束消息
break;
}
}
};
static PlayerMessageListener sPlayerMessageListener;
// 注册消息监听
sPlayer.setPlayerMessageListener(&sPlayerMessageListener);
操作接口说明
sPlayer.play("/mnt/extsd/music/test.mp3"); // 播放指定路径的文件
sPlayer.pause(); // 暂停播放
sPlayer.resume(); // 恢复播放
sPlayer.seekTo(int msec); // 跳转到msec时间播放, msec 单位: ms
sPlayer.stop(); // 停止播放
sPlayer.isPlaying(); // 是否播放中,返回bool型
sPlayer.getDuration(); // 获取当前播放歌曲的总时间
sPlayer.getCurrentPosition(); // 获取当前播放歌曲的当前播放时间点
sPlayer.setVolume(0.5, 0.5); // 设置媒体音量,音量范围:0.0 ~ 1.0
[!Note] 播放的音频文件不能过短,时间过短可能导致无法正常播放。
完整代码见样例代码 控件样例里的 MusicDemo
工程