Skip to main content

Command Palette

Search for a command to run...

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

Published
1 min read
SwiftUI通过AVPlayer播放网络音频小纸条

之前有一个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文档,回头琢磨下是否需要更不同的方式去玩它

More from this blog

Https 本地服务器小纸条

最近想要尝试一下Telegram mini app,在调试时需要使用https的服务。试来试去发现在Mac下完成一个简单的HTTPS服务器还是需要点奇奇怪怪的工具的。但是整体来讲非常简单。 准备证书 主要会使用mkcert来创建证书。首先安装mkcert。 brew install mkcert brew install nss # if use Firefox 将mkcert加入到本地root CA。 mkcert -install 生成证书 本地调试可以使用localhost或127.0...

Feb 21, 20241 min read
Https 本地服务器小纸条

macOS中使用Docker发布一个python项目的小纸条

最近写了一个Telegram Bot,它可以使用语音和文字与GPT进行交互,成为了我日常重度使用的工具。从练习英语的听说读,到日常的搜索使用上都让我有了不少收获。终于,日常跑在我笔记本上的日子就要过去了,我需要它能日常跑在我的服务器上,所以准备使用Docker整个image,使得我日常的更新和服务器的迁移更为简单些。所以写下这个小纸条,方便以后自己回来查看。 安装Docker 使用Homebrew安装简单方便: brew install --cask docker Homebrew会视你的机器...

Mar 10, 20233 min read
macOS中使用Docker发布一个python项目的小纸条

老房东的纸条箱

39 posts