Russian Qt Forum
Ноябрь 24, 2024, 13:38 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: QProcess and VLC  (Прочитано 5109 раз)
ecspertiza
Супер
******
Offline Offline

Сообщений: 1053


С уважением, мастер конфетного цеха!


Просмотр профиля
« : Декабрь 03, 2012, 20:31 »

Нужно из проги запустить видео файл с помощью vlc плеера. И все работает хорошо ,но только если в пути нет русских символов, если они есть то файл просто не открывается.

Всякие

Код:
    setlocale(LC_ALL,"");

    QTextCodec * codec = QTextCodec::codecForName("UTF-8");
    QTextCodec::setCodecForTr( codec );
    QTextCodec::setCodecForCStrings( codec );

в main.cpp стоят

причем VLC кидает такую забавную ошибку

Код:
Чтение файла не удалось:
VLC не может открыть файл "D:\Video\??????????????????\?????????????????? - ??????????????????.avi". (%m)
Этот источник не открывается:
VLC не может открыть MRL 'file:///D:/Video/Гришковец/Гришковец - Дредноуты.avi'. Ищите более подробную информацию в лог-файле.

то есть, он видит как то на половину Улыбающийся тоесть в первом выводе у него проблемы ,а во втором все хорошо. Кто знает какую кодировку ему нужно под сунуть ? Windows-1251 пробовал, не прокатило, тоже и с CP866.
Записан
twp
Гость
« Ответ #1 : Декабрь 03, 2012, 20:49 »

а если так
Код
C++ (Qt)
QTextCodec::setCodecForCStrings(QTextCodec::codecForLocale());
 
Записан
ecspertiza
Супер
******
Offline Offline

Сообщений: 1053


С уважением, мастер конфетного цеха!


Просмотр профиля
« Ответ #2 : Декабрь 03, 2012, 21:06 »

Тогда получается так. Но из консоли файлы с русскими символами запускает хорошо.
Записан
lit-uriy
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 3880


Просмотр профиля WWW
« Ответ #3 : Декабрь 03, 2012, 21:28 »

ecspertiza, а почему ты меняешь кодек для Си строк?
Может стоит самому VLC скармливать в качестве аргумента, соответствующим образом преобразованную строку и только
Записан

Юра.
ecspertiza
Супер
******
Offline Offline

Сообщений: 1053


С уважением, мастер конфетного цеха!


Просмотр профиля
« Ответ #4 : Декабрь 03, 2012, 21:29 »

Из консоли VLC тоже не кошерно работает, не знаю в чем там у него косяк, но если запускаю так, то получаю ошибку как в первом посте, если запускаю без file:/// то все хорошо, беда в том что в программе я запускаю вместе с file:/// ибо если без него то vlc считает путь от того места где лежит мой софт, там путь вообще сумасшедший получается.
Записан
ecspertiza
Супер
******
Offline Offline

Сообщений: 1053


С уважением, мастер конфетного цеха!


Просмотр профиля
« Ответ #5 : Декабрь 03, 2012, 21:30 »

ecspertiza, а почему ты меняешь кодек для Си строк?

для libtorrent нужно. Иначе он файлы в закачку добавить не может. Но как написал выше походу трабла в самом vlc, щас буду думать как ее обойти Улыбающийся
Записан
ecspertiza
Супер
******
Offline Offline

Сообщений: 1053


С уважением, мастер конфетного цеха!


Просмотр профиля
« Ответ #6 : Декабрь 03, 2012, 21:48 »

Вообщем заработало, я запускал вот так

Код:
process.startDetached(vlcPath,QStringList() << "file:///"  + QDir::fromNativeSeparators(fileName))

а нужно вот так

Код:
QFileName fi(fileName);
process.startDetached(vlcPath,QStringList() << QDir::fromNativeSeparators(fi.fileName()),QDir::fromNativeSeparators(fi.path()))

где fileName - это имя видео файла для запуска. В чем прикол я так и не понял, походу где то в VLC косяк при старте с префиксом file:///
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.069 секунд. Запросов: 23.