2015-08-25 2 views
0

Я пишу свой собственный музыкальный плеер на 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; 

Я пробовал файлы с пробелами и без пробелов в их именах, поэтому я не думаю, что это причина. Было бы здорово, если бы вы могли помочь мне здесь.

+0

Если вы не большой поклонник C, я бы рекомендовал использовать [vlc-qt] (https://github.com/vlc-qt/vlc-qt). – Zen

ответ

0

Вы пробовали "d:\\path\\to\\some\\external\\file"?

+0

Что я могу сказать ... ты прибил его. Большое спасибо =) Вы избегаете обратную косую черту, используя 2? – Ricky

+0

Именно так. – caprica