Hi
wie kann ich Sounds hinter einander abspielen ?
mit SoundEffect und playSound.play() kann ich zwar einen Sound abspielen aber ich müsste dann warten bis der Sound zu ende ist um einen neuen abspielen zu können.
mfg Dirk
2 sounds hintereinander
Re: 2 sounds hintereinander
Kannst du nich einfach mehrere SoundEffect-Instanzen verwenden?
Natürlich könntest du jetzt auch einen Timer starten sobald se1 startet und damit zeitversetzt se2 starten.
MfG
Hilefoks
Code: Alles auswählen
import QtQuick 2.7
import QtQuick.Controls 2.0
import QtQuick.Layouts 1.0
import QtMultimedia 5.8
ApplicationWindow {
width: 300
height: 200
visible: true
SoundEffect {
id: se1
source: "1.wav"
onPlayingChanged: {
if(!playing) {
se2.play();
}
}
}
SoundEffect {
id: se2
source: "2.wav"
}
RowLayout {
anchors.fill: parent
Button { text: "1"; onClicked: se1.play(); }
Button { text: "2"; onClicked: se2.play(); }
}
}
MfG
Hilefoks
Re: 2 sounds hintereinander
Hi,
Danke für die Antwort.
Also ich möchte immer zur vollen Stunde Sounds abspielen. Sound1 wenn Checkbox ein Häkchen ist dann Sound2 abhängig von der Zeit (Stunde) und dann Sound3.
Alle Sounds nach einander.
mfg Dirk
Danke für die Antwort.
Hmm.. darüber habe ich noch gar nicht nach gedacht.Kannst du nich einfach mehrere SoundEffect-Instanzen verwenden?
Also ich möchte immer zur vollen Stunde Sounds abspielen. Sound1 wenn Checkbox ein Häkchen ist dann Sound2 abhängig von der Zeit (Stunde) und dann Sound3.
Alle Sounds nach einander.
mfg Dirk
Re: 2 sounds hintereinander
Hi,
Irgendwie funzt das nicht so wie ich mir das vorgestellt habe.
Ich hänge mal das ganze Ding dran.
Es existiert für jede Stunde ein File. Z.B. 0.wav, 1.wav ... 12.wav usw.
Zusätzlich gibt es noch qtr.wav und d00.wav für die Minuten ':00'
Es soll also immer zur vollen Stunde die Zeit ausgegeben werden oder bei betätigen des Testbuttons.
Irgendwie funzt das nicht so wie ich mir das vorgestellt habe.
Ich hänge mal das ganze Ding dran.
Es existiert für jede Stunde ein File. Z.B. 0.wav, 1.wav ... 12.wav usw.
Zusätzlich gibt es noch qtr.wav und d00.wav für die Minuten ':00'
Es soll also immer zur vollen Stunde die Zeit ausgegeben werden oder bei betätigen des Testbuttons.
Code: Alles auswählen
/******************************************************************************
** cwclock ist ein Programm das zur vollen Stunde die Zeit in Morsezeichen **
** ausgibt. Je nach dem ob ein Häkchen gemacht wurde wird vor der Zeit der **
** Q-Schlüssel QTR gegeben. **
** Z.B. qtr 2:00 entsp. qtr.wav, 2.wav, d00.wav **
** oder 2:00 entsp. 2.wav, d00.wav **
** **
** (c) Dirk Unverzagt, DL8AAX **
** **
** http://www.modellbau-yodi.de/aax/ **
*******************************************************************************/
import QtQuick 2.4
import Ubuntu.Components 1.3
import QtMultimedia 5.6
import QtQuick.Controls 1.4
import QtQuick.Extras 1.4
import QtQuick.Window 2.2
MainView {
objectName: "mainView"
applicationName: "cwclock.dl8aax" // Note! applicationName needs to match the "name" field of the click manifest
width: units.gu(45)
height: units.gu(60)
backgroundColor: "#ff0cdd"
property string cwfile
property string pf
property string neustd
property string altstd
SoundEffect {
id: playSound
onPlayingChanged: {
console.log("playfile:"+playSound.source)
if(!playing) {
console.log("spielt nix")
if(pf="qtr"){// qtr ist gegeben also Stunde geben
if(!playing) {
console.log("pf=qtr")
playSound.source=cwfile
playSound.play()
pf="cwstd"
}
}
if(pf="cwstd"){// Stunde ist gegeben also ':00' geben
if(!playing) {
console.log("pf=cwstd")
playSound.source="d00.wav"
playSound.play()
pf=""
}
}
}
}//onPlayingChanged
}//SoundEffect
function onoff(){
if (button2.checked==true ) {
timer1.start()
button2.text = qsTr("Aus")
}
else {
timer1.stop()
button2.text = qsTr("Ein")
}
}
function morsema(){
var d = new Date();
cwfile=d.getHours()+".wav"
if (checkBox1.checked==true){
playSound.source="qtr.wav"
pf="qtr"
}
else {
pf="cwstd"
playSound.source=cwfile
}
playSound.play()
}//morsema
Page {
title: "CWClock"
antialiasing: true
header: PageHeader {
id: pageHeader
title: i18n.tr("cwclock")
StyleHints {
foregroundColor: UbuntuColors.orange
backgroundColor: UbuntuColors.porcelain
dividerColor: UbuntuColors.slate
}
}
Button {
id: testbutton
width: 100
text: "Test"
objectName: "button"
anchors {
horizontalCenter: parent.horizontalCenter
top: label.bottom
}
anchors.horizontalCenterOffset: 122
anchors.topMargin: 6
onClicked: {
morsema()
}
}// button testbutton
Timer {
id: timer1
interval: 1000
repeat: true
running: true
onTriggered: {
text1.text = new Date().toLocaleTimeString("h:m:s")
neustd=new Date().toLocaleTimeString("h")
if(altstd != neustd){
morsema()
altstd=new Date().toLocaleTimeString("h")
}
}
}//timer
Label {
id: label
width: 333
height: 19
text: "CW Uhr"
objectName: "label"
anchors {
horizontalCenter: parent.horizontalCenter
top: pageHeader.bottom
}
anchors.horizontalCenterOffset: 1
anchors.topMargin: 22
}
Text {
id: text1
x: 14
y: 80
width: 338
height: 65
color: "#010162"
text: qsTr("00:00:00")
styleColor: "#5d81fd"
font.italic: true
font.bold: true
style: Text.Sunken
font.family: "Tahoma"
horizontalAlignment: Text.AlignHCenter
font.pixelSize: 47
anchors {
horizontalCenter: parent.horizontalCenter
top: testbutton.bottom
}
}//text1
CheckBox {
id: checkBox1
x: 14
y: 159
text: qsTr("mit Text QTR")
anchors.horizontalCenterOffset: -113
checked: true
anchors {
horizontalCenter: parent.horizontalCenter
top: text1.bottom
topMargin: 6
}
} //checkBox1
Button {
id: button1
x: 14
y: 227
width: 338
height: 27
text: qsTr("Programm beenden")
checkable: false
onClicked: {
Qt.quit()
}
}
Button {
id: button2
x: 14
y: 47
text: qsTr("Aus")
anchors.horizontalCenterOffset: -123
checked: true
checkable: true
onClicked:{
onoff()
}
anchors {
horizontalCenter: parent.horizontalCenter
top: label.bottom
topMargin: 6
}
}//button2
}// Page
}//MainView