AvPlayer 无法在设备中播放声音

AvPlayer is unable to play sound in device

我的代码在模拟器中运行良好,并且可以毫无问题地传输 url。但是当插入实际设备时,它不会播放音频。我的代码如下

var playerItem: AVPlayerItem?
var player: AVPlayer?

func initPlayer() {
    let url:URL = URL(string:"https://storage.googleapis.com/purelightdatabucket/samples%2F60-Energy%20UPLIFT.mp3")!
    self.playerItem = AVPlayerItem(url: url)
    self.player=AVPlayer(playerItem: self.playerItem!)
    let playerLayer=AVPlayerLayer(player: self.player!)
    playerLayer.frame = CGRect(x: 0, y: 0, width: 10, height: 50) // actually this player layer is not visible
    self.view.layer.addSublayer(playerLayer)
}

将此代码放入 didFinishLaunchingWithOptions

 do {
       try AVAudioSession.sharedInstance().setCategory(AVAudioSession.Category.playback)
       try AVAudioSession.sharedInstance().setActive(true)
 } catch {
     print(error)
 }

你也可以用这个:

您需要将 AVKitAVFoundation 添加到您的 frameworks 路径并导入它们:

import UIKit
import AVKit
import AVFoundation

class ViewController: UIViewController {

    var player = AVPlayer()

    override func viewDidLoad() {
        super.viewDidLoad()

        let playerItem = AVPlayerItem(url: URL(string: "https://storage.googleapis.com/purelightdatabucket/samples%2F60-Energy%20UPLIFT.mp3")!)
        player = AVPlayer(playerItem: playerItem)
        player.play()
    }

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