У меня есть мобильное приложение 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()
{
}