@Override
public void onPrepared(final MediaPlayer mp)
{
- onMediaPlayerInfoNative(MEDIA_PLAYER_DURATION, getDuration(), mID);
onMediaPlayerInfoNative(MEDIA_PLAYER_READY, 0, mID);
+ onMediaPlayerInfoNative(MEDIA_PLAYER_DURATION, getDuration(), mID);
mPreparing = false;
}
qint64 QAndroidMediaPlayerControl::duration() const
{
return (mCurrentMediaStatus == QMediaPlayer::InvalidMedia
- || mCurrentMediaStatus == QMediaPlayer::NoMedia) ? 0
- : mMediaPlayer->getDuration();
+ || mCurrentMediaStatus == QMediaPlayer::NoMedia
+ || !mMediaPlayerReady) ? 0
+ : mMediaPlayer->getDuration();
}
qint64 QAndroidMediaPlayerControl::position() const
setState(QMediaPlayer::StoppedState);
break;
case JMediaPlayer::MEDIA_PLAYER_READY:
+ setMediaStatus(QMediaPlayer::LoadedMedia);
if (mBuffering) {
setMediaStatus(mBufferPercent == 100 ? QMediaPlayer::BufferedMedia
: QMediaPlayer::BufferingMedia);
} else {
- setMediaStatus(QMediaPlayer::LoadedMedia);
- mBufferPercent = 100;
- Q_EMIT bufferStatusChanged(mBufferPercent);
- updateAvailablePlaybackRanges();
+ onBufferChanged(100);
}
setAudioAvailable(true);
mMediaPlayerReady = true;
void QAndroidMediaPlayerControl::onBufferChanged(qint32 percent)
{
- mBuffering = true;
+ mBuffering = percent != 100;
mBufferPercent = percent;
Q_EMIT bufferStatusChanged(mBufferPercent);