main.qml Example File
nowplaying/assets/main.qml
import bb.cascades 1.0
import bb.multimedia 1.0
Page {
Container {
layout: DockLayout {}
ImageView {
horizontalAlignment: HorizontalAlignment.Fill
verticalAlignment: VerticalAlignment.Fill
imageSource: "asset:///images/background.png"
}
Label {
horizontalAlignment: HorizontalAlignment.Center
verticalAlignment: VerticalAlignment.Top
text: qsTr("The Handyman's Lament")
textStyle {
base: SystemDefaults.TextStyles.BigText
color: Color.Gray
}
}
ImageButton {
horizontalAlignment: HorizontalAlignment.Center
verticalAlignment: VerticalAlignment.Center
defaultImageSource: player.mediaState == MediaState.Started ? "asset:///images/stop_button.png" :
player.mediaState == MediaState.Paused ? "asset:///images/pause_button.png" :
"asset:///images/play_button.png"
onClicked: {
if (player.mediaState == MediaState.Started)
nowPlaying.revoke()
else
nowPlaying.acquire()
}
}
ProgressBar {
horizontalAlignment: HorizontalAlignment.Center
verticalAlignment: VerticalAlignment.Bottom
duration: nowPlaying.duration
position: nowPlaying.position
}
}
attachedObjects: [
MediaPlayer {
id: player
sourceUrl: "music/song.mp3"
},
NowPlayingConnection {
id: nowPlaying
duration: player.duration
position: player.position
iconUrl: "asset:///images/music.png"
mediaState: player.mediaState
onAcquired: {
player.play()
nowPlaying.mediaState = MediaState.Started
nowPlaying.metaData = player.metaData
}
onPause: {
player.pause()
}
onPlay: {
player.play()
}
onRevoked: {
player.stop()
}
}
]
}