Qt在播放远程音频文件时出现问题

时间:2011-12-10 15:09:22

标签: qt mobile nokia qml

我有Qt移动应用程序从服务器播放远程音频文件,在Meego下它工作正常 但是在像E5这样的Symbian手机中,它只播放文件的前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()
{
}

0 个答案:

没有答案
相关问题