How to play mp3 audio from URL in ios swift

后端 未结 9 670
鱼传尺愫
鱼传尺愫 2020-11-30 04:50

I am getting mp3 url as a response of api calling. I want to play that audio, so how can i do that? (ios swift)

here is my response

 {
    content =          


        
9条回答
  •  隐瞒了意图╮
    2020-11-30 05:32

    I tried the following,

    let urlstring = "http://radio.spainmedia.es/wp-content/uploads/2015/12/tailtoddle_lo4.mp3"
    let url = NSURL(string: urlstring)
    print("the url = \(url!)")
    downloadFileFromURL(url!)
    

    Add the below methods,

    func downloadFileFromURL(url:NSURL){
    
        var downloadTask:NSURLSessionDownloadTask
        downloadTask = NSURLSession.sharedSession().downloadTaskWithURL(url, completionHandler: { [weak self](URL, response, error) -> Void in
            self?.play(URL)
        })
            
        downloadTask.resume()
        
    }
    

    And your play method as it is,

    func play(url:NSURL) {
        print("playing \(url)")
        
        do {
            self.player = try AVAudioPlayer(contentsOfURL: url)
            player.prepareToPlay()
            player.volume = 1.0
            player.play()
        } catch let error as NSError {
            //self.player = nil
            print(error.localizedDescription)
        } catch {
            print("AVAudioPlayer init failed")
        }
        
    }
    

    Download the mp3 file and then try to play it, somehow AVAudioPlayer does not download your mp3 file for you. I am able to download the audio file and player plays it.

    Remember to add this in your info.plist since you are loading from a http source and you need the below to be set for iOS 9+

    
    
    
    
        NSAllowsArbitraryLoads
        
    
    
    

提交回复
热议问题