import QtQuick 2.1 import QtMultimedia 5.1 Rectangle { width: 1024 height: 576 MediaPlayer { id: player source: "http://devimages.apple.com/iphone/samples/bipbop/bipbopall.m3u8" autoPlay: true autoLoad: true property bool isPlaying: false property bool isBuffering: false onSourceChanged: { console.log( 'player source changed ' + player.source) } onPlaybackRateChanged: { console.debug("playbackRate: " + playbackRate); } onPlaybackStateChanged: { console.debug("playbackState = " + player.playbackState); switch(playbackState) { case MediaPlayer.PlayingState: isPlaying = true; console.debug("playbackState = PlayingState " + player.playbackState); break; case MediaPlayer.PausedState: isPlaying = false; console.debug("playbackState = PausedState " + player.playbackState); break; case MediaPlayer.StoppedState: isPlaying = false; isBuffering = true; console.debug("playbackState = StoppedState " + player.playbackState); break; default: isPlaying = false; console.debug("playbackState = ? " + player.playbackState); } /* if (playbackState === MediaPlayer.PlayingState) isPlaying = true; else isPlaying = false; */ } onAvailabilityChanged: { //console.debug("availability = " + player.availability); } onErrorChanged: { console.debug("error = " + player.error); if (player.error == 5) { Qt.quit() // quit() } // assets:/qml/STBPlayer1/main.qml:135 (onErrorChanged): error = 5 << MediaDeathNotifier(10713): media server died // E/MediaPlayer(10713): Error (100,0) } onStatusChanged: { /* switch(player.status) { case MediaPlayer.Loaded: console.debug("onStatusChanged - status = MediaPlayer.Loaded " + player.status); break; case MediaPlayer.Buffered: console.debug("onStatusChanged - status = MediaPlayer.Buffered - the media has buffered data " + player.status); break; case MediaPlayer.NoMedia: console.debug("onStatusChanged - status = MediaPlayer.NoMedia - no media has been set " + player.status); break; case MediaPlayer.Loading: console.debug("onStatusChanged - status = MediaPlayer.Loading - the media is currently being loaded " + player.status); break; case MediaPlayer.Buffering: console.debug("onStatusChanged - status = MediaPlayer.Buffering - the media is buffering data " + player.status); break; case MediaPlayer.Stalled: console.debug("onStatusChanged - status = MediaPlayer.Stalled - playback has been interrupted while the media is buffering data " + player.status); break; case MediaPlayer.EndOfMedia: console.debug("onStatusChanged - status = MediaPlayer.EndOfMedia - the media has played to the end " + player.status); break; case MediaPlayer.InvalidMedia: console.debug("onStatusChanged - status = MediaPlayer.InvalidMedia - the media cannot be played " + player.status); break; case MediaPlayer.UnknownStatus: console.debug("onStatusChanged - status = MediaPlayer.UnknownStatus - the status of the media cannot be determined " + player.status); break; default: console.debug("status = " + player.status); } */ switch(player.status) { case MediaPlayer.Loaded: case MediaPlayer.Buffered: case 5: isBuffering = false; break; case MediaPlayer.NoMedia: case MediaPlayer.Buffering: case MediaPlayer.Loading: case MediaPlayer.Stalled: isBuffering = true; break; default: console.debug("onStatusChanged - unhandled status = " + player.status); } } } VideoOutput { id: videoOutput source: player anchors.fill: parent // width: 1280; height: 720 fillMode: VideoOutput.Stretch visible: true } MouseArea { anchors.fill: parent onClicked: { Qt.quit(); } } }