Я пишу свой собственный музыкальный плеер на Win7, используя libvlc. После некоторой борьбы за то, что он правильно работал с Qt5.5, я смог успешно запустить свой код. Он воспроизводит нужные файлы, как ожидалось. BUT:libvlc путь к файлу в libvlc_media_new_path
Кажется, что воспроизводятся только файлы, находящиеся в корневой директории проектов. Поэтому всякий раз, когда я хочу использовать путь к файлу, который находится где-то в другом месте, это не сработает.
libvlc_instance_t * inst;
libvlc_media_player_t *mp;
libvlc_media_t *m;
/* Load the VLC engine */
inst = libvlc_new (0, NULL);
qDebug() << "Instance: " << inst;
/* this is what does not work. The programme crashes with a segmentation fault */
//m = libvlc_media_new_path(inst, "D:/path/to/some/external/file");
//m = libvlc_media_new_path(inst, "C:/path/to/some/external/file");
//m = libvlc_media_new_path(inst, "D:\Path\to\some\external\file");
//m = libvlc_media_new_path(inst, "file:///C:/path/to/some/external/file");
/* this works if track.flac is in the project's root director */
m = libvlc_media_new_path(inst, "track.flac");
qDebug() << "Item: " << m << " " << libvlc_media_get_mrl(m);
/* no problems here */
/* Create a media player playing environement */
mp = libvlc_media_player_new_from_media (m);
qDebug() << "Player: " << mp;
Я пробовал файлы с пробелами и без пробелов в их именах, поэтому я не думаю, что это причина. Было бы здорово, если бы вы могли помочь мне здесь.
Если вы не большой поклонник C, я бы рекомендовал использовать [vlc-qt] (https://github.com/vlc-qt/vlc-qt). – Zen