Add tasks for all the new languages

This commit is contained in:
Tina Müller 2016-12-05 23:44:36 +01:00
parent 9dc3c2bb62
commit bba7bfd280
13208 changed files with 134745 additions and 0 deletions

View file

@ -0,0 +1,117 @@
Load "guilib.ring"
new qapp {
q1=NULL q2=NULL
win1 = new qwidget() {
setwindowtitle("play sound!") show()
setgeometry(100,100,400,400)
}
new qpushbutton(win1) {
setgeometry(50,50,100,30)
settext("play1")
setclickevent("playmusic1()")
show()
}
new qpushbutton(win1) {
setgeometry(200,50,100,30)
settext("play2")
setclickevent("playmusic2()")
show()
}
new qpushbutton(win1) {
setgeometry(50,100,100,30)
settext("pause1")
setclickevent("pauseplay1()")
show()
}
new qpushbutton(win1) {
setgeometry(200,100,100,30)
settext("pause2")
setclickevent("pauseplay2()")
show()
}
new qpushbutton(win1) {
setgeometry(50,150,100,30)
settext("stop1")
setclickevent("stopplay1()")
show()
}
new qpushbutton(win1) {
setgeometry(200,150,100,30)
settext("stop2")
setclickevent("stopplay2()")
show()
}
lineedit1 = new qlineedit(win1) {
setGeometry(50,200,100,30)
settext("50")
show()
}
lineedit2 = new qlineedit(win1) {
setGeometry(200,200,100,30)
settext("50")
show()
}
new qpushbutton(win1) {
setgeometry(50,250,100,30)
settext("volume1")
setclickevent("volume1()")
show()
}
new qpushbutton(win1) {
setgeometry(200,250,100,30)
settext("volume2")
setclickevent("volume2()")
show()
}
new qpushbutton(win1) {
setgeometry(50,300,100,30)
settext("mute1")
setclickevent("mute1()")
show()
}
new qpushbutton(win1) {
setgeometry(200,300,100,30)
settext("mute2")
setclickevent("mute2()")
show()
}
exec()
}
func playmusic1
q1 = new qmediaplayer(win1) {
setmedia(new qurl("music1.wav"))
setvolume(50) play()
}
func playmusic2
q2 = new qmediaplayer(win1) {
setmedia(new qurl("music2.wav"))
setvolume(50) play()
}
func pauseplay1
q1.pause()
func pauseplay2
q2.pause()
func stopplay1
q1.stop()
func stopplay2
q2.stop()
func volume1
lineedit1 { vol1 = text() }
q1 {setvolume(number(vol1))}
func volume2
lineedit2 { vol2 = text() }
q2 {setvolume(number(vol2))}
func mute1
q1.setmuted(true)
func mute2
q2.setmuted(true)

View file

@ -0,0 +1,78 @@
import AVFoundation
// This example uses AVAudioPlayer for playback.
// AVAudioPlayer is the player Apple recommends for playback, since it suitable for songs
// and offers control over numerous playback parameters.
// It can play any type that is natively supported by OSX or iOS
class PlayerControl: NSObject, AVAudioPlayerDelegate {
let player1:AVAudioPlayer!
let player2:AVAudioPlayer!
var playedBoth = false
var volume:Float {
get {
return player1.volume
}
set {
player1.volume = newValue
player2.volume = newValue
}
}
init(player1:AVAudioPlayer, player2:AVAudioPlayer) {
super.init()
self.player1 = player1
self.player2 = player2
self.player1.delegate = self
self.player2.delegate = self
}
func loop() {
player1.numberOfLoops = 1
player1.play()
let time = Int64((Double(player1.duration) + 2.0) * Double(NSEC_PER_SEC))
dispatch_after(dispatch_time(0, time), dispatch_get_main_queue()) {[weak self] in
println("Stopping track")
self?.player1.stop()
exit(0)
}
}
func playBoth() {
player1.play()
player2.play()
}
func audioPlayerDidFinishPlaying(player:AVAudioPlayer!, successfully flag:Bool) {
if player === player2 && !playedBoth {
playBoth()
playedBoth = true
} else if player === player2 && playedBoth {
loop()
}
}
}
let url1 = NSURL(string: "file:///file1.mp3")
let url2 = NSURL(string: "file:///file2.mp3")
var err:NSError?
let player1 = AVAudioPlayer(contentsOfURL: url1, error: &err)
let player2 = AVAudioPlayer(contentsOfURL: url2, error: &err)
let player = PlayerControl(player1: player1, player2: player2)
// Setting the volume
player.volume = 0.5
// Play track 2
// When this track finishes it will play both of them
// by calling the audioPlayerDidFinishPlaying delegate method
// Once both tracks finish playing, it will then loop the first track twice
// stopping the track after 2 seconds of the second play
player.player2.play()
CFRunLoopRun()