Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 14 additions & 0 deletions AmperfyKit/Player/BackendAudioPlayer.swift
Original file line number Diff line number Diff line change
Expand Up @@ -105,6 +105,7 @@ class BackendAudioPlayer: NSObject {
private var volumePlayer: Float = 1.0

private var player: AudioStreamingPlayer?
private var basicAVPlayer: AVPlayer?
private var equalizer: AVAudioUnitEQ?
private var replayGainNode: AVAudioMixerNode?
public private(set) var audioAnalyzer: AudioAnalyzer
Expand Down Expand Up @@ -438,6 +439,7 @@ class BackendAudioPlayer: NSObject {
perloadedStreamingBitrate = nil
activeTranscodingFormat = nil
preloadTranscodingFormat = nil
basicAVPlayer = nil
guard playable.isPlayableOniOS || streamingTranscodings
.isTranscodingActive(networkMonitor: networkMonitor) else {
reactToIncompatibleContentType(
Expand All @@ -454,6 +456,16 @@ class BackendAudioPlayer: NSObject {
reactToInvalidRadioUrl(playableDisplayTitle: playable.displayString)
return
}
// Basic AVFoundation radio playback quick and easy
if urlString.contains(".m3u8"),
let radioUrl = URL(string: urlString) {
stop()
basicAVPlayer = AVPlayer(url: radioUrl)
basicAVPlayer?.play()

isPlaying = true
return
}
}

Task { @MainActor in
Expand Down Expand Up @@ -515,6 +527,8 @@ class BackendAudioPlayer: NSObject {
seekTimeWhenStarted = nil
isPlaying = false
playType = nil
basicAVPlayer?.pause()
basicAVPlayer = nil

stopTimers()
audioAnalyzer.stop()
Expand Down