SwiftUI通过AVPlayer播放网络音频小纸条

·

1 min read

之前有一个SwiftUI中通过AVAudioPlayer播放Audio小纸条主要是说明如何播放一个本地的音乐。如果要播放网络中的音乐如何操作呢?有两个思路,第一个思路就是从网络上下载,再通过AVAudioPlayer来播放。第二个方法就是通过AVPlayer来进行播放。

简单的播放按钮

我非常喜欢这个简单的播放按钮

import SwiftUI
import AVKit

struct MyContentView : View {
    var body: some View {
        PlayAudio(url: "https://youraudio/url")
    }
}

public struct PlayAudio: View {
    var player : AVPlayer

    public init(url:String){
        player = AVPlayer(url: URL(string: url)!)
        player.play()
    }

    public var body: some View {
        ZStack{
            VStack{
                Button(action: {
                    player.seek(to: CMTime(seconds: 0, preferredTimescale: 10))
                    player.play()
                }) {
                    Image(systemName: "play.circle.fill").resizable()
                        .frame(width: 50, height: 50)
                        .aspectRatio(contentMode: .fit)
                }
            }
        }
    }
}

附加阅读

苹果官方提供了一份Observing Playback State文档Observing the Playback Time文档,回头琢磨下是否需要更不同的方式去玩它