Проблема с Qt при воспроизведении удаленных аудиофайлов - PullRequest
2 голосов
/ 10 декабря 2011

У меня есть мобильное приложение Qt, которое воспроизводит удаленные аудиофайлы с сервера, в Meego оно работает нормально, однако в телефонах Symbian, таких как E5, оно воспроизводит только первые 2 секунды файла и затем переходит к следующей.

Ниже приведен код

#include "radioplayer.h"
#include <AudioOutput>
#include <QUrl>
#include <QDebug>
#include <QTimer>

RadioPlayer::RadioPlayer(QObject *parent) :
    QObject(parent),
    m_startIndex(1),
    m_endIndex(116)
{
    m_currentIndex = m_startIndex;

    m_mediaObject = new Phonon::MediaObject(this);
    qDebug() << "MediaObject created";
    Phonon::AudioOutput *audioOutput = 
                 new Phonon::AudioOutput(Phonon::MusicCategory, this);
    qDebug() << "AudioOutput created";
    Phonon::createPath(m_mediaObject, audioOutput);
    qDebug() << "Audio path created";

    connect(m_mediaObject, SIGNAL(aboutToFinish()), 
            this, SLOT(enqueueNextSource()));
    QTimer::singleShot(0,this, SLOT(delayedInit()));

}

void RadioPlayer::delayedInit()
{
    m_mediaObject->setCurrentSource(
         Phonon::MediaSource(QUrl( 
              QString("http://www.wesam.me/quran/%1.amr" )
                    .arg(m_currentIndex))));
    qDebug() << "Media source has been set";
}

void RadioPlayer::enqueueNextSource()
{
    m_currentIndex = m_currentIndex < m_endIndex? m_currentIndex+1 : m_startIndex;
    m_mediaObject->enqueue(
          Phonon::MediaSource(QUrl(
             QString("http://www.wesam.me/quran/%1.amr")
                   .arg(m_currentIndex))));
}

void RadioPlayer::start()
{
    m_mediaObject->play();
    qDebug() << "radio start() called";
}

void RadioPlayer::stop()
{
    m_mediaObject->pause();
    qDebug() << "radio stop() called";
}

void RadioPlayer::savePosition()
{
}

void RadioPlayer::loasPosition()
{
}
...