[Swift]AVPlayerで音楽をストリーミング再生

swift

Swiftでオンライン上の音声ファイルをストリーミング再生するためのメモ。

AVAudioPlayerではストリーミング再生できない

Swiftで音声ファイルの再生を検索すると、AVAudioPlayerがよく出てくる。

簡単に実装できるわけだけど、注意したいのがストリーミング再生には対応していないこと。公式サイトにもその旨が記載されている。

https://developer.apple.com/documentation/avfaudio/avaudioplayer

ストリーミング再生する時は、AVPlayerを使うようだ。

コード

import SwiftUI
import AVFoundation
var player: AVPlayer?
var playerItem: AVPlayerItem?
let url = URL(string: "https://s3.amazonaws.com/kargopolov/kukushka.mp3")

class MyPlayer {
    let player = AVPlayer(url: url!)
    
    func playAudio() {
        player.play()
    }
}

struct StreamingPlay: View {
    var viewModel = MyPlayer()
    var body: some View {
        Button(action: {
            viewModel.playAudio()
        }) {
            Text("Play Audio")
        }
    }
}

参考:https://www.appsdeveloperblog.com/avplayer-play-music-mp3-file-from-a-remote-url-in-swift/

https://qiita.com/Yuehan/items/fd925ce450c7783474f9

ボタンを押したらストリーミング再生されるようになっている。

こちらも忘れずに設定するように。

[Swift] API接続したいけど、エラーで接続できない



カテゴリー