Fix EOF handler

This commit is contained in:
Arkadiusz Fal 2022-02-27 21:25:29 +01:00
parent 4081c65c34
commit d32b38c352
3 changed files with 12 additions and 10 deletions

View File

@ -271,11 +271,9 @@ final class MPVBackend: PlayerBackend {
onFileLoaded = nil
case MPV_EVENT_END_FILE:
break
// DispatchQueue.main.async { [weak self] in
// TODO: handle EOF
// self?.handleEndOfFile(event)
// }
DispatchQueue.main.async { [weak self] in
self?.handleEndOfFile(event)
}
default:
logger.info(.init(stringLiteral: "event: \(String(cString: mpv_event_name(event.pointee.event_id)))"))

View File

@ -429,11 +429,15 @@ final class PlayerModel: ObservableObject {
#endif
func updateNowPlayingInfo() {
guard let video = currentItem?.video else {
return
}
let currentTime = (backend.currentTime?.seconds.isFinite ?? false) ? backend.currentTime!.seconds : 0
var nowPlayingInfo: [String: AnyObject] = [
MPMediaItemPropertyTitle: currentItem.video.title as AnyObject,
MPMediaItemPropertyArtist: currentItem.video.author as AnyObject,
MPNowPlayingInfoPropertyIsLiveStream: currentItem.video.live as AnyObject,
MPMediaItemPropertyTitle: video.title as AnyObject,
MPMediaItemPropertyArtist: video.author as AnyObject,
MPNowPlayingInfoPropertyIsLiveStream: video.live as AnyObject,
MPNowPlayingInfoPropertyElapsedPlaybackTime: currentTime as AnyObject,
MPNowPlayingInfoPropertyPlaybackQueueCount: queue.count as AnyObject,
MPNowPlayingInfoPropertyPlaybackQueueIndex: 1 as AnyObject,
@ -444,7 +448,7 @@ final class PlayerModel: ObservableObject {
nowPlayingInfo[MPMediaItemPropertyArtwork] = currentArtwork as AnyObject
}
if !currentItem.video.live {
if !video.live {
let itemDuration = (backend.playerItemDuration ?? .zero).seconds
let duration = itemDuration.isFinite ? Double(itemDuration) : nil

View File

@ -114,7 +114,7 @@ struct VideoPlayerView: View {
Color.clear
.onAppear {
player.playerSize = proxy.size
// TODO move to backend method
// TODO: move to backend method
player.mpvBackend.client?.setSize(proxy.size.width, proxy.size.height)
}
.onChange(of: proxy.size) { _ in