Модераторы: JackYF, Любитель
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Преобразование символов 
:(
    Опции темы
OlegIT
Дата 17.7.2017, 12:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 657
Регистрация: 5.4.2006

Репутация: нет
Всего: нет



Загружаю файл в QMediaPlayer
Код

    QUrl url;
    url.setUrl(fileName.toLocal8Bit());
//    url.setUrl(fileName);
//    QUrl url = QUrl::fromLocalFile(fileName);
    QMediaContent Mc(url);
    player->setMedia(Mc);

Если в имени файла есть символ «`» то он автоматически преобразуется в %60 и трек не загружается. Пробовал разные варианты загрузки имени, но результат один и тот же. Как правильно работать с такими символами?


PM MAIL   Вверх
kapbepucm
Дата 14.8.2017, 10:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 968
Регистрация: 14.6.2007
Где: Латвия

Репутация: нет
Всего: 12



Видимо, символ меняется в QUrl::setUrl
В этой функции есть параметр parsingMode- попробуй его поменять на QUrl::DecodedMode, а не использовать дефолтный.


--------------------
(С) kapbepucm
PM MAIL Skype   Вверх
OlegIT
Дата 18.8.2017, 14:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 657
Регистрация: 5.4.2006

Репутация: нет
Всего: нет



Код

void QUrl::setUrl(const QString &url, ParsingMode parsingMode)
{
    if (parsingMode == DecodedMode) {
        qWarning("QUrl: QUrl::DecodedMode is not permitted when parsing a full URL");
    } else {
        detach();
        d->parse(url, parsingMode);
    }
}

Увы в моей версии QUrl::DecodedMode is not permitted when parsing a full URL
PM MAIL   Вверх
kapbepucm
Дата 22.8.2017, 14:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 968
Регистрация: 14.6.2007
Где: Латвия

Репутация: нет
Всего: 12



Да, действительно. Для чего они этот режим вообще вводили, коли он работать не будет ))

Я потестил возможности QMediaPlayer но, к сожалению, код толком не взлетел по причине того, что моя версия qt несовместима с версией моего gstreamer :(


--------------------
(С) kapbepucm
PM MAIL Skype   Вверх
kapbepucm
Дата 25.8.2017, 08:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 968
Регистрация: 14.6.2007
Где: Латвия

Репутация: нет
Всего: 12



Я всётаки нашёл у себя систему, где qt работает с gstreamer. Данный пример загружает файл с символом "`" и проигрывает его:
Код
#include <qapplication.h>
#include <QVideoWidget>
#include <QMediaPlayer>
#include <QMediaContent>
#include <QUrl>

int main( int argc, char **argv )
{
  QApplication app(argc, argv);
  QMediaPlayer * mediaPlayer = new QMediaPlayer(NULL, QMediaPlayer::VideoSurface);
  QVideoWidget * videoWidget = new QVideoWidget();
  mediaPlayer->setVideoOutput(videoWidget);
  videoWidget->resize(320, 240);

  mediaPlayer->setMedia(QMediaContent(QUrl::fromLocalFile("/tmp/```.avi")));

  videoWidget->show();
  mediaPlayer->play();
  return app.exec();
}


Добавлено через 6 минут и 56 секунд
Ubuntu 16.04.3 LTS
Qt 5.5.1


--------------------
(С) kapbepucm
PM MAIL Skype   Вверх
OlegIT
Дата 1.9.2017, 08:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 657
Регистрация: 5.4.2006

Репутация: нет
Всего: нет



Чистый Linux не проверял, некогда, а в Android всё работает нормально. Видно в Windows у них очередной глюк.
PM MAIL   Вверх
Google
  Дата 14.11.2019, 03:31 (ссылка)  





  Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С/С++: Кроссплатформенное программирование, QT/Gtk+/wxWidgets"
JackYF
Любитель
  • В заголовке темы в квадратных скобках обозначьте используемую вами библиотеку, например: [QT],[GTK],[wx].
  • Если вопрос актуален только для некоторой версии библиотеки, либо, если вы пользуетесь не самой последней версией, укажите это. Например: [QT4], [GTK2].
  • Все начинающие изучать Qt - не забудьте зайти сюда.
  • Проставьте несколько ключевых слов темы, чтобы её можно было легче найти.
  • В вопросе укажите полную версию версию библиотеки, а также все дополнительные используемые программные пакеты.
  • Не забывайте пользоваться кнопкой "Код".
  • Телепатов на форуме нет! Задавайте чёткий, конкретный и полный вопрос. Указывайте полностью ошибки компилятора и компоновщика.
  • Новое сообщение должно иметь прямое отношение к тематике этого раздела. Флуд, флейм, оффтопик запрещены.
  • Категорически запрещается обсуждение вареза, "кряков", взлома программ и т.д.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, Любитель.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | С/С++: Кроссплатформенное программирование, Qt/Gtk+/wxWidgets | Следующая тема »


 




[ Время генерации скрипта: 0.0801 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.