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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: Необъяснимое поведение QMediaPlayer в QThread  (Прочитано 4623 раз)
caysee
Гость
« : Июль 14, 2017, 11:13 »

Добрый день, столкнулся с такой проблемой, когда создаю объект QMediaPlayer сразу после запуска все работает, а когда в конструкторе, все падает
Код:
#include "worker.h"

Worker::Worker(QObject *parent) : QObject(parent)
{


}

void Worker::process(){

    mPlayer = new QMediaPlayer;
    QString radioString("http://bfm.hostingradio.ru:8004/fm64");
    mPlayer->setMedia(QMediaContent(QUrl(radioString)));
    mPlayer->setVolume(50);
    mPlayer->play();
}
а вот так вод падает
Код:
#include "worker.h"

Worker::Worker(QObject *parent) : QObject(parent)
{

 mPlayer = new QMediaPlayer;
}

void Worker::process(){

   
    QString radioString("http://bfm.hostingradio.ru:8004/fm64");
    mPlayer->setMedia(QMediaContent(QUrl(radioString)));
    mPlayer->setVolume(50);
    mPlayer->play();
}
Запуск потока стандартный
Код:
 thread = new QThread;
    worker = new Worker;
    worker->moveToThread(thread);
    QObject::connect(thread, &QThread::started, worker, &Worker::process);

    thread->start();
даже не знаю в какую сторону копать
Записан
Apktyc
Самовар
**
Offline Offline

Сообщений: 133


Просмотр профиля
« Ответ #1 : Июль 14, 2017, 11:18 »

Судя по всему, так и задумано: QMediaPlayer crashes when moved to thread
Записан
caysee
Гость
« Ответ #2 : Июль 14, 2017, 11:25 »

Спасибо, а то я уже просто отчаялся.
Записан
gil9red
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 1805



Просмотр профиля WWW
« Ответ #3 : Июль 14, 2017, 13:09 »

Спасибо, а то я уже просто отчаялся.

Кст, Yoann Lopes пишет что:
Цитировать
QMediaPlayer is neither thread-safe nor reentrant. It is not intended to be used from another thread, it already runs in its own thread on Windows.
т.е. QMediaPlayer уже в своем потоке запущен
Записан

kuzulis
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2812


Просмотр профиля
« Ответ #4 : Июль 23, 2017, 15:52 »

И да, QtMM не очень хорошая вещь. Если есть возможность - то лучше использовать libVLC, ffmpeg, DirectShow.
Записан

ArchLinux x86_64 / Win10 64 bit
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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