main.qml Example File
multimedia/dictaphone/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"
}
Led {
horizontalAlignment: HorizontalAlignment.Left
verticalAlignment: VerticalAlignment.Top
translationX: 40
translationY: 500
state: (recorder.mediaState == MediaState.Started ? "rec" :
recorder.mediaState == MediaState.Paused ? "pause" : "off")
}
Tape {
id: tape
horizontalAlignment: HorizontalAlignment.Center
verticalAlignment: VerticalAlignment.Top
translationY: 570
running: (recorder.mediaState == MediaState.Started)
}
ImageView {
horizontalAlignment: HorizontalAlignment.Center
verticalAlignment: VerticalAlignment.Bottom
translationY: -205
imageSource: "asset:///images/dictaphone_label.png"
}
ImageView {
horizontalAlignment: HorizontalAlignment.Center
verticalAlignment: VerticalAlignment.Bottom
imageSource: "asset:///images/buttons_background.png"
}
Container {
horizontalAlignment: HorizontalAlignment.Center
verticalAlignment: VerticalAlignment.Bottom
preferredWidth: 670
layout: StackLayout {
orientation: LayoutOrientation.LeftToRight
}
ImageToggleButton {
rightMargin: 2
imageSourceDefault: "asset:///images/rec_button.png"
imageSourcePressedUnchecked: "asset:///images/rec_button.png"
imageSourceChecked: "asset:///images/rec_button_pressed.png"
imageSourcePressedChecked: "asset:///images/rec_button_pressed.png"
imageSourceDisabledChecked: "asset:///images/rec_button_pressed.png"
enabled: (recorder.mediaState != MediaState.Paused)
onCheckedChanged: {
if (recorder.mediaState == MediaState.Started) {
recorder.reset()
_trackManager.update()
recordStopSound.play()
} else {
_trackManager.update()
recorder.outputUrl = _trackManager.nextTrackUrl()
recordStartSound.play()
recorder.record()
}
}
}
ImageToggleButton {
leftMargin: 2
rightMargin: 2
imageSourceDefault: "asset:///images/pause_button.png"
imageSourceDisabledUnchecked: "asset:///images/pause_button.png"
imageSourcePressedUnchecked: "asset:///images/pause_button.png"
imageSourceChecked: "asset:///images/pause_button_pressed.png"
imageSourcePressedChecked: "asset:///images/pause_button_pressed.png"
enabled: (recorder.mediaState == MediaState.Started ||
recorder.mediaState == MediaState.Paused)
onCheckedChanged: {
if (recorder.mediaState == MediaState.Started)
recorder.pause()
else
recorder.record()
}
}
ImageButton {
leftMargin: 2
defaultImageSource: "asset:///images/play_button.png"
pressedImageSource: "asset:///images/play_button_pressed.png"
disabledImageSource: "asset:///images/play_button.png"
enabled: (_trackManager.hasRecordedTracks &&
recorder.mediaState != MediaState.Started &&
recorder.mediaState != MediaState.Paused)
onClicked: playerSheet.open()
}
}
}
attachedObjects: [
AudioRecorder {
id: recorder
},
PlayerSheet {
id: playerSheet
},
SystemSound {
id: recordStartSound
sound: SystemSound.RecordingStartEvent
},
SystemSound {
id: recordStopSound
sound: SystemSound.RecordingStopEvent
}
]
}