mciSendString好还是vlc好?
我想做一个播放器,已经适配了vlc,现在有一些问题1.视屏只播放前面一段2.控制台输出报错[04215c58] mmdevice audio output error: cannot initialize COM (error 0x80010106)3.我想让他在easyx窗口,我获得了窗口句柄,但不知添加到哪4.我的程序附近包含了vlc安装目录的所有文件夹和dll。
最后附上我的代码:
#include <stdio.h>
#include "vlc/vlc.h"
#include <windows.h>
#pragma comment(lib, "libvlc.lib")
#pragma comment(lib, "libvlccore.lib")
using namespace std;
HWND hwnd = GetHWnd();
int main(int argc, char* argv[])
{
initgraph(1600, 900, EW_SHOWCONSOLE);
libvlc_instance_t* inst;
libvlc_media_player_t* mp;
libvlc_media_t* m;
inst = libvlc_new(0, NULL); /* Load the VLC engine */
m = libvlc_media_new_path(inst, "test.mp4"); // 必须为英文路径
mp = libvlc_media_player_new_from_media(m); /* Create a media player playing environement */
libvlc_media_release(m); /* No need to keep the media now */
// 播放文件
libvlc_media_player_play(mp); /* play the media_player */
Sleep(100 * 1000); /* Let it play a bit */
libvlc_media_player_stop(mp); /* Stop playing */
libvlc_media_player_release(mp); /* Free the media_player */
libvlc_release(inst);
return 0;
}
请大家解答。
实在不行就用ms的mci - Forest 2020-4-2
错误提示的意思是,你没有初始化 COM。关于 COM 接口的使用,还是有点复杂的。。。初始化部分是这样的:
::CoInitialize(NULL); // 初始化 COM
// 使用 COM
::CoUninitialize(); // 释放 COM
在使用任何 COM 接口之前,必须先初始化 COM(初始化一次就好)。
我记得你才小学五年级,如果这样,我个人并不推荐你过多的学习 COM 相关知识。你这个阶段,多学习点程序逻辑方面的东西就好,比如写个小游戏,不要侧重于视频声音,侧重于游戏本身的逻辑实现就好。