远程mp3文件需要大量时间在swift ios中播放

vij*_*iju 2 avfoundation ios swift

我有麻烦了。我想在我的应用程序中播放远程 mp3 文件。但是 mp3 文件需要很长时间(大约 5-6 分钟)才能播放。为什么 ?

任何人都可以建议我该怎么办?

 import UIKit

 import AVFoundation

 class TestViewController: UIViewController, AVAudioPlayerDelegate {

 var player:AVAudioPlayer = AVAudioPlayer()

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

 @IBAction func play(sender: AnyObject) {

    let url = "http://www.example.com/song.mp3"

    let fileURL = NSURL(string: url.stringByAddingPercentEncodingWithAllowedCharacters(NSCharacterSet.URLQueryAllowedCharacterSet()))

    let soundData = NSData.dataWithContentsOfURL(fileURL, options: nil, error: nil)

    var error: NSError?
    self.player = AVAudioPlayer(data: soundData, error: &error)
    if player == nil
    {
        if let e = error
        {
            println(e.localizedDescription)
        }
    }

    player.volume   = 1.0
    player.delegate = self
    player.prepareToPlay()

    player.play()

 }

}
Run Code Online (Sandbox Code Playgroud)

提前致谢。

lem*_*elo 5

Use AVPlayer instead of AVAudioPlayer for streaming audio. It can be as simple as this --

let urlString = "http://www.example.com/song.mp3"
let url = NSURL(string: urlString)

var avPlayer = AVPlayer(URL: url)
avPlayer.play()
Run Code Online (Sandbox Code Playgroud)

You can also set an observer on the AVPlayer.status property to manage its changing status. Check out: /sf/answers/920985971/ (objective c)

And of course the AVPlayer docs are here: https://developer.apple.com/LIBRARY/ios/documentation/AVFoundation/Reference/AVPlayer_Class/index.html#//apple_ref/occ/cl/AVPlayer