如何使用IGraphBuilder播放Ogg Vorbis文件

克里希

我需要编写一个程序,可以借助IGraphBuilder或任何其他Windows API直接(在C ++ / win32 API中)播放.ogg Vorbis文件吗?

我尝试使用IGraphBuilder,但对我不起作用。样例代码:

IMediaControl *pControl = NULL;
IGraphBuilder *pGraph= NULL;
IMediaEventEx *pEvent= NULL;
IMediaPosition *pMediaPosition= NULL;

hr = ::CoCreateInstance(CLSID_FilterGraph, NULL, CLSCTX_INPROC_SERVER,
                        IID_IGraphBuilder, (void **)&pGraph);
if (FAILED(hr)) {
    return false;
}

hr = pGraph->AddFilter(pFilter, L"Out");
hr = pGraph->QueryInterface(IID_IMediaControl, (void **)&pControl);
hr = pGraph->QueryInterface(IID_IMediaEvent, (void **)&pEvent);
hr = pGraph->QueryInterface(IID_IMediaPosition, (void**)&pMediaPosition);

// Build the graph.
hr = pGraph->RenderFile(mFilePath.c_str()/*"C:\\sample.ogg file"*/, NULL);

/* here hr = 0x80040265 so SUCCEEDED(hr) didnt allow it to enter in if condition*/
if (SUCCEEDED(hr)) {
    // Run the graph.
    hr = pControl->Run();
    if (SUCCEEDED(hr)) {
        // Wait for completion.
        long evCode;
        pEvent->WaitForCompletion(INFINITE, &evCode);
    }
}

// Clean up in reverse order.
SAFE_RELEASE(pEvent);
SAFE_RELEASE(pControl);
SAFE_RELEASE(pGraph);
pGraph = NULL;

::CoUninitialize();

注意:上面的语句hr = pGraph->RenderFile()返回hr = 0x80040265和条件if (SUCCEEDED(hr))不允许播放它。

如果我不使用此条件,则pControl->Run()返回ID_OK执行。但是,扬声器没有任何作用。请提出解决方案/方法。

Andlabs

注意HRESULT错误代码;他们的意思。MSDN通常对特定于功能的错误代码(如您所获得的错误代码)很有帮助。(有了足够的COM编程,您就可以E_INVALIDARG通过视觉识别常见的错误。)如果没有,则可以使用头文件来查明潜在的错误代码。HRESULT具有特定格式;学习吧!

如果是IGraphBuilder::RenderFile(),则HRESULT映射为VFW_E_UNSUPPORTED_STREAM,这基本上意味着您的设置不支持播放Ogg Vorbis文件。您将需要安装一个允许DirectShow播放Ogg Vorbis文件的过滤器,例如Xiph.Org的官方文件

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何解码Ogg vorbis文件Java?

来自分类Dev

对于小文件大小,使用Ogg Vorbis SPI解码.ogg文件失败

来自分类Dev

将TargetDataLine数据编码为Ogg Vorbis文件

来自分类Dev

通过DLNA将FLAC,Ogg Vorbis和Opus文件播放到渲染器

来自分类Dev

在iOS中实施Ogg Vorbis时出现文件未找到问题

来自分类Dev

Ubuntu 14.04-如何在关闭时使用脚本播放ogg文件?

来自分类Dev

如何使用Java Sound缓冲和播放OGG文件中的声音数据

来自分类Dev

使用Ogg Flac和Vorbis在Fedora中构建libsndfile

来自分类Dev

javax.sound.sampled.UnsupportedAudioFileException使用javazoom播放OGG文件

来自分类Dev

如何制作vorbis-tools ogg123的静态二进制构建?

来自分类Dev

如何通过 Ogg Vorbis 字节缓冲区获得采样率

来自分类Dev

如何在Adobe AIR应用程序中播放.ogg文件?

来自分类Dev

Safari无法播放.ogg文件,那么它在wiktionary.org上如何工作?

来自分类Dev

如何在Adobe AIR应用程序中播放.ogg文件?

来自分类Dev

如何在启动时播放声音片段(.ogg文件)?

来自分类Dev

使用元数据将Ogg Vorbis转换为MP3

来自分类Dev

Unity WebGL:为什么使用下载的 Mp3 或 OGG 文件无法播放音频?

来自分类Dev

将mp3转换为ogg vorbis

来自分类Dev

无需pygame在tkinter中播放ogg文件

来自分类Dev

如何使用ffmpeg编码ogg音频文件?

来自分类Dev

如何确定OGG文件的长度

来自分类Dev

如何使用ExoPlayer播放DES加密文件

来自分类Dev

如何使用Java播放WAV文件?

来自分类Dev

Android:如何使用MediaPlayer播放WAV文件

来自分类Dev

如何使用python无限播放“.wav”文件

来自分类Dev

几秒钟后,Android .ogg文件停止播放

来自分类Dev

.ogg音频文件和播放白噪声

来自分类Dev

几秒钟后,Android .ogg文件停止播放

来自分类Dev

.ogg音频文件和播放白噪声

Related 相关文章

  1. 1

    如何解码Ogg vorbis文件Java?

  2. 2

    对于小文件大小,使用Ogg Vorbis SPI解码.ogg文件失败

  3. 3

    将TargetDataLine数据编码为Ogg Vorbis文件

  4. 4

    通过DLNA将FLAC,Ogg Vorbis和Opus文件播放到渲染器

  5. 5

    在iOS中实施Ogg Vorbis时出现文件未找到问题

  6. 6

    Ubuntu 14.04-如何在关闭时使用脚本播放ogg文件?

  7. 7

    如何使用Java Sound缓冲和播放OGG文件中的声音数据

  8. 8

    使用Ogg Flac和Vorbis在Fedora中构建libsndfile

  9. 9

    javax.sound.sampled.UnsupportedAudioFileException使用javazoom播放OGG文件

  10. 10

    如何制作vorbis-tools ogg123的静态二进制构建?

  11. 11

    如何通过 Ogg Vorbis 字节缓冲区获得采样率

  12. 12

    如何在Adobe AIR应用程序中播放.ogg文件?

  13. 13

    Safari无法播放.ogg文件,那么它在wiktionary.org上如何工作?

  14. 14

    如何在Adobe AIR应用程序中播放.ogg文件?

  15. 15

    如何在启动时播放声音片段(.ogg文件)?

  16. 16

    使用元数据将Ogg Vorbis转换为MP3

  17. 17

    Unity WebGL:为什么使用下载的 Mp3 或 OGG 文件无法播放音频?

  18. 18

    将mp3转换为ogg vorbis

  19. 19

    无需pygame在tkinter中播放ogg文件

  20. 20

    如何使用ffmpeg编码ogg音频文件?

  21. 21

    如何确定OGG文件的长度

  22. 22

    如何使用ExoPlayer播放DES加密文件

  23. 23

    如何使用Java播放WAV文件?

  24. 24

    Android:如何使用MediaPlayer播放WAV文件

  25. 25

    如何使用python无限播放“.wav”文件

  26. 26

    几秒钟后,Android .ogg文件停止播放

  27. 27

    .ogg音频文件和播放白噪声

  28. 28

    几秒钟后,Android .ogg文件停止播放

  29. 29

    .ogg音频文件和播放白噪声

热门标签

归档