mciSendString好还是vlc好?

0

我想做一个播放器,已经适配了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;
}

请大家解答。

ava
Forest

2020-4-2

实在不行就用ms的mci -  Forest  2020-4-2
0

错误提示的意思是,你没有初始化 COM。关于 COM 接口的使用,还是有点复杂的。。。初始化部分是这样的:

::CoInitialize(NULL); // 初始化 COM

// 使用 COM

::CoUninitialize(); // 释放 COM

在使用任何 COM 接口之前,必须先初始化 COM(初始化一次就好)。

我记得你才小学五年级,如果这样,我个人并不推荐你过多的学习 COM 相关知识。你这个阶段,多学习点程序逻辑方面的东西就好,比如写个小游戏,不要侧重于视频声音,侧重于游戏本身的逻辑实现就好。

ava
慢羊羊

2020-4-3

好啊,我知道了以后就先写一些逻辑游戏。 -  Forest  2020-4-3
但是初始化com后,还是播放一会就跳出。 -  Forest  2020-4-3
@Forest 我觉得,你可以先试试 vlc 开发包自己带的例子看看有没有问题。 -  慢羊羊  2020-4-3
我没有开发包😭。csdn的资料要积分我也下不了。😭 -  Forest  2020-4-3
我用的代码是简化版的。用多一点代码说不定可以用窗口句柄。 -  Forest  2020-4-3
@慢羊羊 已解决!!!!!!原来要:hwnd = initgraph(16000, 9000, EW_SHOWCONSOLE);,我看了easyx头文件才知道!!!! - @慢羊羊 今天 14:04 -  Forest  2020-4-5
你这个大小也是真离谱😂 -  ꧁༺𝕮𝕿𝕽༻꧂  2023-3-1
技术讨论社区