C++ (Qt)
QTextCodec *codec = QTextCodec::codecForName("UTF-8");
1. А зачем это? У Вас исходники не в UTF8?
2. А попробуйте задавать путь через какой-нить виджет (QLineEdit к примеру)?
3. А сам VLC плеер открывает этот урлик?
Я когда-то оч. давно использовал VLC и вроде оно (имею ввиду с русскими путями , а не то что мне надо было
) работало у меня:
C++ (Qt)
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
QString fileName = QFileDialog::getOpenFileName(nullptr, QDir::homePath(), QObject::tr("Open Video"));
if (fileName.isEmpty())
return 0;
static const char * vlc_argv[] = {
// "-v",
"--ignore-config",
"--video-splitter=panoramix", // vlc2.2.2
// "--vout-filter=panoramix", // vlc 1.1.11
"--panoramix-cols=7",
"--panoramix-rows=1",
"--panoramix-bz-length=0",
"--panoramix-bz-height=0"
};
static const int vlc_argc = sizeof(vlc_argv) / sizeof(vlc_argv[0]);
libvlc_instance_t *inst = ::libvlc_new(vlc_argc, vlc_argv);
::libvlc_set_app_id(inst, "org.my.wall", "2.2.1", "wall"); // vlc 2.2.2
::libvlc_set_user_agent (inst, "My Wall", "My/2.2.1"); // vlc 2.2.2
const QByteArray nativePath = QDir::toNativeSeparators(fileName).toUtf8();
libvlc_media_t *m = ::libvlc_media_new_path(inst, nativePath.constData());
// loop
::libvlc_media_add_option(m, "input-repeat=-1");
libvlc_media_player_t *mp = ::libvlc_media_player_new_from_media(m);
/*
auto layout = new QVBoxLayout;
auto videoWidget = new QWidget;
layout->addWidget(videoWidget);
auto container = new QWidget;
container->setLayout(layout);
::libvlc_media_player_set_hwnd(mp, HWND(videoWidget->winId()));
*/
::libvlc_media_release(m);
::libvlc_media_player_play(mp);
return a.exec();
}
Как-то так было, задавал путь через QFileDialog.
PS: Но то был путь к локальному файлу, а не URL.