2016-11-28 3 views
0

Hallo Ich entwickle eine Swift-Anwendung und ich muss eine AudioFile von URL-Link starten.Wie öffne ich den URL-Link in Swift 3?

let metadateObj = metadataObjects[0] as! AVMetadataMachineReadableCodeObject 

    if metadateObj.type == AVMetadataObjectTypeQRCode { 

     let BarcodeObject = videoPreviewLayer?.transformedMetadataObject(for: metadateObj as AVMetadataMachineReadableCodeObject) as! AVMetadataMachineReadableCodeObject 
     qrCodeframeView?.frame = BarcodeObject.bounds 

     if metadateObj.stringValue != nil { 

      Label.text = metadateObj.stringValue 

Im Grunde habe ich eine QR-Code-Kamera, die den QR-Code (Link der mp4-Datei) scannen und speichern Sie es als Label.text

Dann benutze ich diesen Code:

let movieURL: NSURL? = NSURL (string: "\(Label.text)") 
     if let url = movieURL { 
      self.avPlayer = AVPlayer(url: url as URL) 
      self.avPlayerViewController.player = self.avPlayer 
    } 

, um den Player zu starten, aber es spielt nicht die mp4-Datei.

Von der anderen Seite, wenn ich die Label.text mit dem eigentlichen Link ersetzen:

let movieURL: NSURL? = NSURL (string: "http://techslides.com/demos/sample-videos/small.mp4") 
     if let url = movieURL { 
      self.avPlayer = AVPlayer(url: url as URL) 
      self.avPlayerViewController.player = self.avPlayer 
    } 

Hier funktioniert es perfekt: ich so verwirrt bin ich sicher bin, dass ich alles richtig mache, weil es nicht das ist, Das erste Mal mache ich das. Aber in diesem Fall funktioniert es nicht. Würdest du bitte meinen dummen Fehler finden, ich bin frustriert !!!

+0

Was ist der genaue Wert Ihres Label.text? – rmaddy

+0

Bitte überprüfen Sie die aktualisierte Antwort – Dakata

+0

Ihr Update zeigt nicht den tatsächlichen und genauen Wert von Label.text – rmaddy

Antwort

1

vielleicht versuchen, diese:

OpenLabelButton.isHidden = false 
      Label.isHidden = true 
      captureSession?.stopRunning() 

      label2 = Label.text! 

Und dann

let movieURL: NSURL? = NSURL (string: "\(label2)") 
      if let url = movieURL { 

Hoffe, es funktioniert :)

+0

Das ist, was ich brauche, danke, es funktioniert perfekt. – Dakata

+1

Swift 3 sollten Sie URL statt NSURL verwenden. BTW Swift ist eine Typ-abgeleitete Sprache. Versuche es. –

+0

Warum "' \ (label2) "' als Parameter anstelle von "label2" verwenden? – rmaddy

Verwandte Themen