流媒体开发资料收集(1)
来源:互联网 发布:西门子200编程软件下载 编辑:程序博客网 时间:2024/05/16 05:38
转自chenziteng
并非用到缓冲区就是流式播放,CVideoPlayerUtility只能播放视频剪辑,缓冲区里的视频剪辑也只是视频剪辑而已。播放剪辑是个"Oneshot"的过程,类似用CVideoPlayerUtility时,一段视频播完就是播完了,想播其它的必须重新打开,这期间就有个不可避免的停顿;而播放流是个连续的过程,类似CMdaAudioOutputStream这种,只要打开一次就可以以WriteL()函数不断地追加数据,只要数据跟得上,整个播放过程不会有停顿。
两点:
1. 我可没说这个“模拟”的东西做不出来,我笑的是又有人在进行这种尝试。
实际上模拟这个思路是如此的自然,以至于我遇到过的做过移动流媒体应用的同行都有这样的经历:
(1) 准备做移动流媒体应用
(2) 调查Symbian OS有没有提供现成的视频流API,调查结果:没有
(3) 调查有没有可能利用系统提供的API实现类似的效果,调查结果:连续播视频剪辑有可能行。
(4) 实现看看效果,结果:效果太差
(5) 不得不自己做解码器
当然,我也做给自己看过,实际上只要知道OpenDesL()怎么用就行了,就是n个剪辑一个接一个播嘛,动手做过的都清楚两个剪辑中间的停顿是多么明显。
这件事好比我从死胡同出来,竖块牌子“此路不通”,但有人执意要走走看,那我只好笑着等他出来,然后加一句善意的问候:“Welcome back, little fool”。
2. 明确一个使讨论得以进行下去的基本的前提
即讨论是在“公共SDK开发人员”之间展开,你我他都是站在“公共API使用者”的立场上参加讨论的。
CVideoPlayerUtility类的使用者关心的是调用接口(功能),而非实现。称这个类“能够播放xxx”(xxx代表“流式的内容”或者“剪辑式的内容”)的是指它提供播放xxx的接口,即使用者能够显式地把xxx传给它播放。
无论使用OpenFileL()、OpenDesL()还是OpenUrlL(),传给CVideoPlayerUtility的都只是视频剪辑,所以说它支持播放剪辑式的内容。而开发人员有办法像使用CMdaAudioOutputStream那样把流式的内容连续地传给CVideoPlayerUtility播放吗?没有。所以说它不支持播放流式的内容。
有没有发现“那位朋友”认同“CVideoPlayerUtility只支持播放视频剪辑”?因为他是CVideoPlayerUtility的用户,他不关心OpenDesL()和OpenUrlL()的内部的实现,既然这个类没有提供播放流式内容的接口,导致应用程序无法用它实现期望的功能,那它就是不支持播放流式的内容。
- 流媒体开发资料收集(1)
- 流媒体开发资料收集(2)-Open C
- P2P流媒体收集资料
- 搜索引擎开发(1)资料收集
- iOS流媒体开发资料大全
- iOS流媒体开发的资料
- TDD(测试驱动开发)资料收集
- chrome开发资料收集(转)
- Linux 音频开发(资料收集)
- ios 开发 | 资料收集
- 敏捷开发资料收集
- 开发资料收集
- iPhone开发资料收集
- web开发资料收集
- 开发环境资料收集
- 开发学习资料收集
- Android开发资料收集
- Flash开发资料收集
- dataset、dataview、 datatable、 datacolum、datarow的关系
- 用.net 编码实现朗读文本的方法
- dataset、dataview、 datatable、 datacolum、datarow的关系
- #pragma once 与 #ifndef 解析
- ORACLE SET设置
- 流媒体开发资料收集(1)
- 详细讲解大型数据库的设计原则与开发技巧
- Windows Server 2003的各种版本
- 在VMware ESX Server 3里配置交换机
- 课程 Java程序设计6:Class Design (怀旧版)
- 虚宗
- MFC中的类和Windows中的3种消息类型的关系
- 十句言史
- 天空飘来一片云--初识“云计算”与“云终端”