IMedia中的事件处理,SetMediaParm,GetMediaParm

donghan12yue 2009-08-06 02:53:31
static boolean CMedia_HandleEvent(CMedia* pMe, AEEEvent eCode, uint16 wParam, uint32 dwParam)
{
switch (eCode)
{
case EVT_KEY:
switch(wParam)
{
case AVK_UP:
CMedia_GetVolume(pMe);
break;
case AVK_DOWN:
CMedia_SetVolume(pMe);
break;
}
return(TRUE);
}

...
}


uint16 CMedia_GetVolume(CMedia *pMe)
{
char s[40] = {0};
int a = IMEDIA_GetVolume(pMe->m_pMedia, &pMe->m_curVolume);
SPRINTF(s, "IMEDIA_GetVolume return %d", a);
CMedia_TakeLog(s);
return pMe->m_curVolume;
}

void CMedia_SetVolume(CMedia *pMe)
{
char s[40] = {0};
int a = IMedia_SetVolume(pMe->m_pMedia, 10);
SPRINTF(s, "IMedia_SetVolume return %d", a);
CMedia_TakeLog(s);
}

static void CMedia_Notify(void * pUser, AEEMediaCmdNotify * pCmdNotify)
{
CMedia *pMe = (CMedia *)pUser;

switch(pCmdNotify->nCmd)
{
case MM_CMD_SETMEDIAPARM:
switch(pCmdNotify->nSubCmd)
{
case MM_PARM_VOLUME:
{
CMedia_TakeLog("set volume");
}
break;
}
break;

case MM_CMD_GETMEDIAPARM:
switch(pCmdNotify->nSubCmd)
{
case MM_PARM_VOLUME:
{
char s[100] = {0};
CMedia_TakeLog("get volume");
SPRINTF(s, "%d", pMe->m_curVolume);
CMedia_TakeLog(s);
}
break;
}
break;
}

pMe->m_curVolume初始值为20
日记中的数据:
IMedia_SetVolume return -2
set volume
IMEDIA_GetVolume return -2
IMedia_SetVolume return -2
get volume
20
set volume

本人的意图:通过按向下键设置音量,通过按向上键获取当前音量。
操作:按向下键一次,按向上键一次。
结果:CMedia_SetVolume()走了两次,CMedia_GetVolume()走一次。而且都返回错误的结果,请问如何做才能返回SUCCESS,正确地设置和获取。IMedia的事件处理到底是怎么样的?CMedia_SetVolume()后等待回调,回调完后呢?
...全文
1744 4 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
tx040316 2009-08-12
  • 打赏
  • 举报
回复
你用一个变量来保存起来音量,每次播放的时候都先SET一次保存的音量就可以了。
donghan12yue 2009-08-07
  • 打赏
  • 举报
回复
上面的问题也已解决,未开启多媒体的时候volume总是为100
donghan12yue 2009-08-07
  • 打赏
  • 举报
回复
CMedia_SetVolume()走了两次,CMedia_GetVolume()走一次的问题本人已解决。现在的问题是CMedia_SetVolume()到音量为10,结果在回调中得到的CMedia_GetVolume()的音量是100?
  • 打赏
  • 举报
回复
看一下mediaplayer的例子

3,151

社区成员

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

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