CSDN论坛 > 其他技术论坛 > 游戏开发

DirectShow播mp3,IMediaControl::stop()的时候,程序会停顿几秒钟,如何解决 [问题点数:100分,结帖人boyfling]

Bbs1
本版专家分:0
Blank
黄花 2003年6月 C/C++大版内专家分月排行榜第二
Blank
蓝花 2003年1月 C/C++大版内专家分月排行榜第三
结帖率 100%
CSDN今日推荐
Bbs1
本版专家分:0
Bbs1
本版专家分:0
Bbs1
本版专家分:0
Bbs1
本版专家分:0
Bbs1
本版专家分:0
Bbs1
本版专家分:0
Blank
红花 2004年5月 专题开发/技术/项目大版内专家分月排行榜第一
2004年4月 专题开发/技术/项目大版内专家分月排行榜第一
2004年3月 专题开发/技术/项目大版内专家分月排行榜第一
Blank
黄花 2004年7月 专题开发/技术/项目大版内专家分月排行榜第二
Blank
蓝花 2005年2月 专题开发/技术/项目大版内专家分月排行榜第三
2004年6月 专题开发/技术/项目大版内专家分月排行榜第三
2004年2月 专题开发/技术/项目大版内专家分月排行榜第三
Bbs1
本版专家分:0
Blank
黄花 2003年6月 C/C++大版内专家分月排行榜第二
Blank
蓝花 2003年1月 C/C++大版内专家分月排行榜第三
匿名用户不能发表回复!
其他相关推荐
Directshow学习笔记五-----一个简单的视频播放程序(个人学习总结,仅供参考)
1.       建立一个Filter Graph Manager的实例. 2.       使用Filter Graph Manager 建立一个filter graph. 3.       运行这个graph。 调用CoInitialize 去初始化一个这个COM 库。 HRESULT hr = CoInitialize(NULL); if (FAILED(hr)) {     
MP3的载入和播放
最近学了一些游戏开发必不可少的MP3文件播放知识。首先,我的目标机器是windows,所以这些是在windows平台下开发的。随后我学到,要直接解码MP3文件是非常的困难的。因为MP3文件的闭源,我们都没有知道怎样才能一个一个地解码。好在DirectShow帮我们解决了解码的工作,我们需要的只是加入头文件,并且手动链接库文件,使用它的函数就行了。 为了使用它的函数,我们必须加入头文件dshow.h。这个头文件是不容易找到的。以后的DirectX里面都没有了DirectShow的踪影。我只好下载2004年十二月的DirectX版本,这个版本里就有dshow.h。好了,我们加入这个头文件不外乎就是要加一些接口。这里我列举这一些接口的名字: IGraphBuilder IMediaControl IMediaEventEx 为了能够解析IGraphBuilder这个符号,我们还要手动地链接Strmiids.lib库。这个库不是特别的显眼,但是没有它我们的程序就无法通过。 好了,准备工作做好了后,我们开始写一个类了。这个类很简单,叫CMP3。这个类里面嵌入了另外一个MP3标签类CMP3Tag。下面就是我这个类的代码。 class CMP3 { public: CMP3( void ) // 默认构造函数 { m_GraphBuilder = NULL; m_MediaControl = NULL; m_MediaEventEx = NULL; m_IsPlaying = false; } ~CMP3( void ); // 析构函数 bool LoadMP3File( TString strFilename ); // 读取MP3文件 bool Play( void ); // 播放MP3文件 void ProcessNotification( void ); // 处理通知 CMP3Tag GetMP3Tag( void ) { return m_tag; } // 获取MP3标签 bool IsPlaying( void ) { return m_IsPlaying; } // 判断是否正在播放 private: bool m_IsPlaying; IGraphBuilder* m_GraphBuilder; IMediaControl* m_MediaControl; IMediaEventEx* m_MediaEventEx; CMP3Tag m_tag; };
Directshow完整介绍
最近一段时间,在编写DirectShow应用程序时常常遇到一些问题,原因是对DirectShow技术没有较全面地掌握,对各个接口间的关系以及filter与filter之间连接的内部过程等都只是一知半解,除了再仔细地看看DirectShow的基类库源文件之外,觉得也很有必要从头到尾看一遍DirectShow的MSDN文档。在看时顺便有选择地翻译出来,一来以便以后再看时可以轻松点,二来也敦促自己不能不
让正执行的程序暂停几秒钟
在做一个医院的计时器的时候,让播放开始声音后在开始倒计时,当中用到了让程序暂停的问题,所以就总结了一下 一:第一种方法 可以用一个简单的方法来实现暂停效果,就是直接在代码中插入Thread.Sleep(3000),但是这样你会感觉你的用户界面假死了,因为Thread.Sleep(3000)会使当前线程休眠,而你在窗口界面所在的线程中执行,界面也就没有响应了。 二:第二种方法 这个方法与第一种方
开源DirectShow分析器和解码器: LAV Filter
LAV Filter 是一款开源的DirectShow视频分离和解码软件,他的分离器LAVSplitter封装了FFMPEG中的libavformat,解码器LAVAudio和LAVVideo则封装了FFMPEG中的libavcodec。它支持十分广泛的视音频格式。 支持状况: 封装格式: MKV/WebM, AVI, MP4/MOV, MPEG-TS/PS (including b
用directshow抓取视频的一帧
http://www.vckbase.com/document/viewdoc/?id=976
一个基于Directshow实现的音频播放器,支持歌词显示
之前在VC知识库上下载了一个基于Directshow做的音乐播放器,带歌词显示功能,觉得挺酷的。我下载了代码,编译了工程之后,运行起来的界面效果如下: 这个播放器支持的功能有:  支持播放MP3/AAC/WAV等常见的音频格式;  音乐播放控制(播放、暂停、停止、跳跃播放);  调节音量;   音乐播放过程中同步显示歌词;   歌词的文字颜色和背景色可调,并且可设置滚动方向;   歌词显示支持淡入...
jvm停顿处理
JVM停顿 JVM(Java虚拟机)在运行过程中会产生很多停顿,常见的有GC、JIT、取消偏向锁(RevokeBias)、RedefineClasses(AOP)等。对应用程序影 响最大的则是GC停顿。RocketMQ尽量避免Full GC,但Minor GC带来的停顿是难以避免的。针对GC调优是一个很伽利略的问题,需要通过大量的 测试来帮助应用程序调整GC参数,比如可以通过调整堆大小,GC
最简单的基于DirectShow的示例:视频播放器图形界面版
本文记录一个最简单的基于DirectShow的图形界面的视频播放器。基于DirectShow的图形界面的播放器的例子还是比较多的,但是大部分都是“层层封装”的例子。“层层封装”的例子相对来说更加稳定,但是却不是很容易理解。因为DirectShow本身的接口函数的数量就比较多,如果再加上封装DirectShow的函数,合起来的函数数量是非常大的,很容易让人搞不清哪些才是真正的DirectShow接口
基于日志理解 cms 原理,为什么remark要stop the world?(理解CMS GC日志.)
理解CMS GC日志 本文翻译自: https://blogs.oracle.com/poonam/entry/understanding_cms_gc_logs 加入自己的思考,特别是为什么remark要stop the world? 准备工作 JVM的GC日志的主要参数包括如下几个: -XX:+PrintGC 输出GC日志 -XX:+PrintGCDetails 输出GC
关闭