Merge branch 'advplyr:master' into DataClasses

This commit is contained in:
Ben
2022-04-24 22:47:48 -04:00
committed by GitHub
34 changed files with 424 additions and 353 deletions
+6 -3
View File
@@ -22,18 +22,21 @@ class AudioPlayer: NSObject {
private var playerItemContext = 0
private var playWhenReady: Bool
private var initialPlaybackRate: Float
private var audioPlayer: AVPlayer
private var playbackSession: PlaybackSession
private var activeAudioTrack: AudioTrack
// MARK: - Constructor
init(playbackSession: PlaybackSession, playWhenReady: Bool = false) {
init(playbackSession: PlaybackSession, playWhenReady: Bool = false, playbackRate: Float = 1) {
self.playWhenReady = playWhenReady
self.initialPlaybackRate = playbackRate
self.audioPlayer = AVPlayer()
self.playbackSession = playbackSession
self.status = -1
self.rate = 0.0
self.tmpRate = playbackRate
if playbackSession.audioTracks.count != 1 || playbackSession.audioTracks[0].mimeType != "application/vnd.apple.mpegurl" {
NSLog("The player only support HLS streams right now")
@@ -74,9 +77,9 @@ class AudioPlayer: NSObject {
print(error)
}
DispatchQueue.main.sync {
// DispatchQueue.main.sync {
UIApplication.shared.endReceivingRemoteControlEvents()
}
// }
NotificationCenter.default.post(name: NSNotification.Name(PlayerEvents.closed.rawValue), object: nil)
}
+2 -2
View File
@@ -14,7 +14,7 @@ class PlayerHandler {
private static var listeningTimePassedSinceLastSync = 0.0
public static func startPlayback(session: PlaybackSession, playWhenReady: Bool) {
public static func startPlayback(session: PlaybackSession, playWhenReady: Bool, playbackRate: Float) {
if player != nil {
player?.destroy()
player = nil
@@ -23,7 +23,7 @@ class PlayerHandler {
NowPlayingInfo.setSessionMetadata(metadata: NowPlayingMetadata(id: session.id, itemId: session.libraryItemId!, artworkUrl: session.coverPath, title: session.displayTitle ?? "Unknown title", author: session.displayAuthor, series: nil))
self.session = session
player = AudioPlayer(playbackSession: session, playWhenReady: playWhenReady)
player = AudioPlayer(playbackSession: session, playWhenReady: playWhenReady, playbackRate: playbackRate)
// DispatchQueue.main.sync {
timer = Timer.scheduledTimer(withTimeInterval: 1, repeats: true) { _ in