mp3音频Source Filter开发 没有声音输出

mmidd 2008-07-15 02:11:22
开发一个音频的source filter 播放含有自定义格式的mp3文件

媒体类型设置为:
HRESULT CSPin::GetMediaType(CMediaType *pMediaType)
{
CheckPointer(pMediaType, E_POINTER);

CAutoLock cAutoLock(m_pFilter->pStateLock());
WAVEFORMATEX *pvi = (WAVEFORMATEX *) pMediaType->AllocFormatBuffer(sizeof(WAVEFORMATEX));
if(NULL == pvi)
return(E_OUTOFMEMORY);
ZeroMemory(pvi, sizeof(WAVEFORMATEX));
pvi->wFormatTag = 85;
pvi->nChannels = 2;
pvi->nSamplesPerSec = 22050;
pvi->wBitsPerSample = 0;
pvi->nBlockAlign = 1;
pvi->nAvgBytesPerSec = 7000;
pvi->cbSize = 12;

//Major Type: Audio - Sub Type: {00000055-0000-0010-8000-00AA00389B71} - Format: WaveFormatEx: 22.050 KHz 0 bit stereo

pMediaType->SetType(&MEDIATYPE_Audio);
pMediaType->SetSubtype(&MEDIASUBTYPE_MP3);
pMediaType->lSampleSize = 1;
pMediaType->bFixedSizeSamples = 1;
pMediaType->SetFormatType(&CLSID_Formatidmp3);
pMediaType->cbFormat = sizeof(WAVEFORMATEX);
pMediaType->SetFormat((BYTE*)pvi, sizeof(WAVEFORMATEX));
pMediaType->SetTemporalCompression(FALSE);

return S_OK;
}

我的当renender我这个source filter的输出pin时,可以和mp3 decoder,audio render自动连接,但声音播放不出来。
在graphedit中看不到audio render filter属性,且查看属性时出错。

不知道哪里设置的 问题,是否不能用智能连接?还是媒体类型设置的不正确?
...全文
128 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
xjfox 2008-07-21
  • 打赏
  • 举报
回复
送给decoder的数据有问题,source filter没写好
timpei 2008-07-18
  • 打赏
  • 举报
回复
媒体类型应该没错,要不filter不能连接。
文件解析的问题。
mmidd 2008-07-16
  • 打赏
  • 举报
回复
mp3数据没问题,我在别的播放器里可以播放,只是在我的source filter中不能播放
asddg67 2008-07-15
  • 打赏
  • 举报
回复
1.首先你的MP3数据是否是正确的..如果不是标准的,估计一般的Filter都是没办法解码的..
2.断点调试Source Filter的FillBuffer函数,是否链路在正常的工作。如果正常,则多数是以为解码的Filter不能解码自定义的MP3数据
livedeal 2008-07-15
  • 打赏
  • 举报
回复
自定义格式的mp3文件~??~?

那你有没有给它解析过格式~?

2,543

社区成员

发帖
与我相关
我的任务
社区描述
专题开发/技术/项目 多媒体/流媒体开发
社区管理员
  • 多媒体/流媒体开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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