2016-04-18 8 views
-1

Ich versuche, meine Musik in umgekehrter Reihenfolge mit der canPlayReverse Eigenschaft zu spielen, aber das funktioniert nicht. Wenn ich versuche, es rückwärts zu spielen, geht es vorwärts. Hier ist der Code, den ich unten habe: Danke!Warum spielt meine Musik nicht rückwärts, wenn die Eigenschaft canPlayReverse in Swift verwendet wird?

class GameScene: SKScene, MPMediaPickerControllerDelegate, AVAudioPlayerDelegate { 

private var player:AVPlayer! = AVPlayer() 

override func touchesMoved(touches: Set<UITouch>, withEvent event: UIEvent?) { 

for touch in touches { 
     let location = touch.locationInNode(self) 
     let node = self.nodeAtPoint(location) 


     //this is for the left turntable 
     if node.name == "lefttt" { 

      //lets user rotate left turntable when there is one finger on turntable. 
      let dy = leftTurntable.position.y - location.y 
      let dx = leftTurntable.position.x - location.x 
      let angle2 = atan2(dy, dx) 
      leftTurntable.zRotation = angle2 


      let delta = (angle2 - previousAngle); M_PI 
      if delta > 0 { 
       print("rotateleft") 
       if musicPlayer == player.currentItem?.canPlayReverse { 
        musicPlayer.rate = -1.0 

       } 

      } else { 

       print("rotateright") 
       musicPlayer.rate = 3.0 
       musicPlayer.play() 
      } 

      previousAngle = angle2 
    } 
+0

Wenn Sie nicht mehr "unerwartet nil" finden und nicht abstürzen, sollten Sie die Frage wahrscheinlich so beheben, dass sie für alle, die sie als nächstes lesen, sinnvoll ist. :) –

+0

Okay, tu es jetzt! – coding22

Antwort

1

Wenn Sie asset!, doch sagen Sie den Compiler, dass der Variable auf ein gültiges Objekt zeigen wird, aber Ihr Code nicht asset, etwas Nicht-Null zu setzen.

Vermeiden Sie im Allgemeinen '!' wann immer möglich und testen Sie stattdessen Ihre Optionen.

+0

Ich habe meinen Code geändert und bekomme den Fehler nicht mehr, aber wenn ich versuche, die Musik umzukehren, spielt sie stattdessen. Kannst du dir meinen Code ansehen? Ich habe es in der op aktualisiert. – coding22

+0

Kommen Sie tatsächlich zu der Zeile, die die Rate auf -1 setzt? –

+0

Ja, es gibt keinen Fehler. – coding22