| 首页 | 新闻 | 网页 | 设计 | 色彩 | 原创 | 视觉 | 素材 | 动漫 | 酷站 | 策划 | 文案 | 访谈 | 运营 | 编程 | 数据库 | 服务器 | 下载 | 图库 | 
您的位置: 幽幽天空 > 网页 > 编程开发 > Visual C++教程 > 文章正文 用户登录
Sharea免费3G媒体
克敌制胜: 媒体文
要用VB做多媒体程
用VB进行多媒体程
用VB进行多媒体程
在VB中用API实现多
基于VB的流媒体解
流媒体学习笔记--
流媒体学习笔记--
在中Visual Studi

流媒体学习笔记----用配置好的文件进行编码           

流媒体学习笔记----用配置好的文件进行编码

作者:佚名 来源:Media Encoder SDK 作者: let5f 更新:2006-8-25 21:05:35 错误报告 我要投稿

 编写编码程序可以使用已经配置好的文件进行编码,文件为“,wme”文件。

这需要调用IWMEncoder的Load()方法。其定义为:

HRESULT Load(
  BSTR  bstrFileName
)  其中,BSTR是一个类似CString类的指向宽字符串的类,bstrFileName包含了编码文件的文件名,即相对路径。
HRESULTCOM中用来向用户报告各种情况的32位值。这个名称很容易让人将这种类型的值当成一个指向某个结果的句柄,
实际上并不是这样。它是一个可分为三个区域的32位值。可理解为“Heres the Result”。返值为S_OK时,表示成功。
S_OK被定义为0。失败时支持IerrorInfo接口,不同的错误有不同的错误号。

使用IWMEncoder前,需要先定义并初始化COM库,返回一个指向该接口的指针。

HRESULT hr;
    IWMEncoder* pEncoder;
// Initialize the COM library and retrieve a pointer
// to an IWMEncoder interface.
    hr = CoInitialize(NULL);
    CoCreateInstance(CLSID_WMEncoder,
                     NULL,
                     CLSCTX_INPROC_SERVER,
                     IID_IWMEncoder,
                    (void**) &pEncoder);

//装载.wme文件

CComBSTR bstrFileName(L"file_name.wme");

hr = pEncoder->Load(bstrFileName);

//可以用IWMEncoder->Save()将配置文件备份保存

//准备编码

hr = pEncoder->PrepareToEncode(VARIANT_TRUE)

//启动编码

hr = pEncoder->Start();

//此时,可以用IWMEncoder->get_RunState()得到编码进程的状态。1代表正在开始,2代表正在编码,4代表正在停止,5代表已经停止。

WMENC_ENCODER_STATE enumEncoderState;
hr = pEncoder->get_RunState(&enumEncoderState);
//可用一个判断编码是否结束的if语句控制编码  如果结束,退出循环。
while(1)
{
if (enumEncoderState != WMENC_ENCODER_RUNNING)
    {
     break;
}
}
//停止编码
hr = pEncoder->Stop();
//释放占用资源
hr = pEncoder->Release();
 
 
程序需要的头文件为:
#include <windows.h>
#include <atlbase.h>    // Includes CComBSTR.
#include "wmencode.h"
 
 
 总结:这是进行编码编程的一个最基本的程序,使用已经配置好的文件进行编码。
在做的过程中,遇到了很多问题,比如:hr的含义,CComBSTR的类型,
COM的初始化。尤其是在最后编码的时候,不能得到编码的内容,是因为过早地结束了程序,
没有编码时间。经过老师的悉心指点和教导,最后终于完成。从中收获颇多。
文章录入:skyuu    责任编辑:skyuu 
  • 上一篇文章:

  • 下一篇文章:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
    网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)
    发表评论:
    姓名:  评 分: 1分 2分 3分 4分 5分
     
  • 严禁发表危害国家安全、政治、黄色淫秽等内容的评论。
  • 用户需对自己在使用幽幽天空服务过程中的行为承担法律责任。
  • 本站管理员有权保留或删除评论内容。
  • 评论内容只代表机友个人观点,与本网站立场无关。