使用IMedia_SetMediaParm设置音量

melody_zyp 2009-02-18 03:28:11
遇到一个问题不太明白
我使用IMedia_SetMediaParm设置音量后紧接着使用IMedia_GetMediaParm获取当前音量 但是在注册的回到函数中只接受到MM_CMD_GETMEDIAPARM 却没有 MM_CMD_SETMEDIAPARM 事件,这是为什么呢?日志显示这两个函数都走到了,返回值都是MM_PENDING

代码如下:
nRet =IMedia_SetMediaParm(pMe->m_pMedia, MM_PARM_VOLUME,AEE_MAX_VOLUME,NULL);
nRet = IMedia_GetMediaParm(pMe->m_pMedia,MM_PARM_VOLUME, (long *)pMe->uVolume,NULL);


同样,如果先GET 再SET ,在注册的回调函数中只有MM_CMD_SETMEDIAPARM 事件
如下代码:
nRet = IMedia_GetMediaParm(pMe->m_pMedia,MM_PARM_VOLUME, (long *)pMe->uVolume,NULL);
nRet =IMedia_SetMediaParm(pMe->m_pMedia, MM_PARM_VOLUME,AEE_MAX_VOLUME,NULL);

我的回调函数:
IMEDIA_RegisterNotify(pMe->m_pMedia, MyApp_MediaNotify, pMe);

void MyApp_MediaNotify(videoplay *pMe, AEEMediaCmdNotify * pCmdNotify)
{
if(pCmdNotify->nCmd == MM_CMD_SETMEDIAPARM)
{
。。。。。。
}

if(pCmdNotify->nCmd == MM_CMD_GETMEDIAPARM)
{
。。。。。。
}

。。。。。。。。。

}

是这个回调函数有什么玄机吗? 为什么都只有一个事件呢?

希望各位大侠能够赐教~~谢谢~~!
...全文
1301 4 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
melody_zyp 2009-03-18
  • 打赏
  • 举报
回复
原来是这样的 非常感谢几位大哥~~ :)
2025hawk 2009-03-06
  • 打赏
  • 举报
回复
这个设置音量的方式是必然等回调操作,执行正确的返回值就是MM_PENDING,去等回调。你通知执行了两个操作在Brew认为是同一个Cmd的,下层Code的Notify会保存回调返回前的最后一个操作, mcb.cmdNotify.nCmd = (eCBType == AEE_SOUND_VOLUME_CB) ? MM_CMD_GETMEDIAPARM : MM_CMD_SETMEDIAPARM;所以你这样写,只会返回一个回调事件.

zsf81 2009-03-05
  • 打赏
  • 举报
回复
回调是有这个特性,只执行最后一次操作,既然要回调就要分步来走
  • 打赏
  • 举报
回复
每一次操作回调一次呀

2,852

社区成员

发帖
与我相关
我的任务
社区描述
本论坛以AI、WoS 、XR、IoT、Auto、生成式AI等核心板块组成,为开发者提供便捷及高效的学习和交流平台。 高通开发者专区主页:https://qualcomm.csdn.net/
人工智能物联网机器学习 技术论坛(原bbs) 北京·东城区
社区管理员
  • csdnsqst0050
  • chipseeker
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧