2017-09-21 9 views
1

J'essaie de diffuser de la musique à partir d'une URL distante. J'essaye de courir ceci dans iOS 11 mais il ne joue pas la musique.Flux en direct en utilisant AVPlayer ne joue pas dans iOS 11

ViewController

var session = AVAudioSession.sharedInstance() 

var LQPlayer: AVPlayer? 
let LOW_URL = URL(string: "http://someLInk.pls")! // not an original url provided at this time. 

class ViewController: UIViewController { 

    override func viewDidLoad() { 
     super.viewDidLoad() 
     self.avPlayerSetup() 
    } 

    func avPlayerSetup() { 
     do { 
      try session.setCategory(AVAudioSessionCategoryPlayback) 
      try session.overrideOutputAudioPort(.none) 
      try session.setActive(true) 
     } catch { 
      print("AVPlayer setup error \(error.localizedDescription)") 
     } 
    } 

    func initPlayer() { 
      LQPlayer = AVPlayer(url: LOW_URL) 
      print("player allocated") 
    } 

    func deAllocPlayer() { 
      LQPlayer = nil 
      print("player deallocated") 
    } 

    @IBAction func playBtn(_ sender: Any) { 
     initPlayer() 
     LQPlayer?.play() 
    } 

    @IBAction func pauseBtn(_ sender: Any) { 
     LQPlayer?.pause() 
     deAllocPlayer() 
    } 
} 

I option Autoriser les charges arbitraires OUI dans info.plist.
Au-dessus du code, l'URL que je donne est factice. L'URL actuelle fonctionne correctement.

+0

est-il montre toute erreur dans le journal? –

+0

Utilisation de RTMP ou HLS pour le streaming en direct? –

+1

Je pense que c'est HLS – Alwin

Répondre

1

code de travail avec Live Video Stream

@IBOutlet weak var player_View: UIView! 
    var LQPlayer: AVPlayer? 
    let LOW_URL = URL(string:"http://www.streambox.fr/playlists/test_001/stream.m3u8")! 


    override func viewDidLoad() { 
     super.viewDidLoad() 

     self.avPlayerSetup() 

     LQPlayer = AVPlayer.init(url: LOW_URL) 
     let avPlayerView = AVPlayerViewController() 
     avPlayerView.view.frame = self.player_View.bounds 
     avPlayerView.player = LQPlayer 

     self.player_View.addSubview(avPlayerView.view) 

    } 

    func avPlayerSetup() { 

     do { 
      try audioSession.setCategory(AVAudioSessionCategoryPlayback) 
      try audioSession.overrideOutputAudioPort(AVAudioSessionPortOverride.speaker) 
      try audioSession.setActive(true) 
     } catch { 
      print("AVPlayer setup error \(error.localizedDescription)") 
     } 

    } 

    func initPlayer() { 
     LQPlayer = AVPlayer(url:LOW_URL) 
     print("player allocated") 
    } 

    func deAllocPlayer() { 
     LQPlayer = nil 
     print("player deallocated") 
    } 

    @IBAction func playBtn(_ sender: Any) { 
    // initPlayer() 
     LQPlayer?.play() 
    } 

    @IBAction func pauseBtn(_ sender: Any) { 
     LQPlayer?.pause() 
     deAllocPlayer() 
    } 
+0

désolé le problème dans l'URL ... :( – Alwin

+0

oui dans Url, heureux d'aider U –