关于brew 流播放音乐问题的一些困惑,高手来看看

loseleo 2010-10-10 02:42:03
现在想实现 从音乐文件中读取一断buffer,比如80K,然后


pIFile = IFILEMGR_OpenFile(pFileMgr,"beyond.mp3",_OFM_READ);
ISHELL_CreateInstance(pMe->a.m_pIShell,AEECLSID_MEDIAPCM,(void**)&pIMedia);
ISHELL_CreateInstance(pMe->a.m_pIShell, AEECLSID_FIFO, (void**)&m_pFIFO);
IFIFO_OpenEx(m_pFIFO,"fifo://shared//test", AEEFIFO_MODE_RW);//fs:/shared/test这个目录
IFIFO_SetBufSize(m_pFIFO, 160000);
MediaDataEx.clsData = MMD_ISOURCE; // pData is ISource
MediaDataEx.pData = (void *)m_pFIFO; // ISource object
MediaDataEx.dwSize = 0;
MediaDataEx.dwStructSize = sizeof(MediaDataEx); // Size of AEEMediaDataEx structure
MediaDataEx.dwCaps = 0; // What capabilities to enable. 0 means all.
MediaDataEx.dwBufferSize = 0; // Internal buffer size. 0 means use default.
MediaDataEx.bRaw = FALSE; // Is this Raw data? Set it to no (FALSE)
IMEDIA_SetMediaDataEx(pIMedia,&MediaDataEx, 1);
IMEDIA_RegisterNotify(pIMedia,(PFNMEDIANOTIFY)CB_Play,m_pISource);
res = IMEDIA_Play(pIMedia);//这里就直接返回 13,状态错误

如果在play之前
IFILE_Read(pIFile,pBuffer,dwCount);
IFIFO_Write(m_pFIFO,(char *)pBuffer, dwCount);//

那就能放出声音。

但是播放后再调用
IFILE_Read(pIFile,pBuffer,dwCount);
IFIFO_Write(m_pFIFO,(char *)pBuffer, dwCount);//
设置下一个buffer却不能连续起来。

看到别人做法应该是可以的:
http://topic.csdn.net/u/20100227/17/6199a1b6-305d-4923-8c33-9c71b9da570f.html





PS:刚试验了一下, 播放wav歌曲,并且把wavespec 设置好,是可以在播放后继续给buffer填充内容的,那如果想播放任意格式的音乐怎么办呢?
求高手赐教,Q 278870738
...全文
475 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

949

社区成员

发帖
与我相关
我的任务
社区描述
为开发者提供高通丰富的解决方案及全面技术下载内容。本版以AI人工智能、WoS移动笔记本、XR、IoT 物联网、Auto 汽车、生成式AI等核心板块组成,为开发者提供一个便捷及高效的学习交流平台。
人工智能物联网机器学习 企业社区 北京·东城区
社区管理员
  • Qualcomm开发
  • csdnsqst0050
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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