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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: Как записывать интернет радио?  (Прочитано 3726 раз)
Fregloin
Супер
******
Offline Offline

Сообщений: 1025


Просмотр профиля
« : Октябрь 19, 2013, 20:57 »

Привет. Как записывать интернет радио на диск средствами Qt? С чего начать? Я так понимаю работать придется через QtMuldimedia.
Нашел простенький пример для начала вопроизведения, только вместо локального файла указал url потока.
Код:
void CMediaGrabber::play()
{
    fplayer.setMedia(QUrl("http://stream.frenchkissfm.com:80"));
    fplayer.setVolume(50);
    fplayer.play();
}
В консоли получаю следующее

Warning: "Для типа «audio/mpeg, mpegversion=(int)1, mpegaudioversion=(int)1, layer=(int)3, rate=(int)44100, channels=(int)2, parsed=(boolean)true» недоступен декодер."
Error: "В вашей установке GStreamer отсутствует модуль."


Плагины gstreamer вроде стоят, по крайней мере пытался их поставить, говорит система что уже установлены.
Записан
Fregloin
Супер
******
Offline Offline

Сообщений: 1025


Просмотр профиля
« Ответ #1 : Октябрь 19, 2013, 21:35 »

установил пакет с ugly кодеками, заработало.

вот мой код:
Код:
CMediaGrabber::CMediaGrabber(QObject *parent) :
    QObject(parent)
{
    connect(&faudioProbe,SIGNAL(audioBufferProbed(QAudioBuffer)),this,SLOT(processBuffer(QAudioBuffer)));
    if(faudioProbe.setSource(&fplayer))
    {
        qDebug("audioProber is attached");
    }
    else
        qDebug("audioProber attach failed");
}

void CMediaGrabber::play()
{
    fplayer.setMedia(QUrl("http://stream.frenchkissfm.com:80"));
    fplayer.setVolume(10);
    fplayer.play();
}

void CMediaGrabber::stop()
{
    fplayer.stop();
}

void CMediaGrabber::processBuffer(QAudioBuffer buffer)
{
    qDebug("buffer bytes %i",buffer.byteCount());
}

Выводит количество принятых данных, звук есть. Теперь как это правильно записать в выходной mp3 файл?
Я так понимаю в processBuffer приходят данные уже распакованные или нет?
Записан
Fregloin
Супер
******
Offline Offline

Сообщений: 1025


Просмотр профиля
« Ответ #2 : Октябрь 19, 2013, 22:05 »

Нашел класс QMediaRecorder, все как раз для меня, но почему то он возвращает false isAvailable().
Настраивал согласно примеру. Т.е. интернет радио играет, но пока не пишет. Но уже что то.
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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