Minor fixes

This commit is contained in:
Arkadiusz Fal 2022-07-11 00:42:47 +02:00
parent e0620abf9f
commit 08ae69b5d2
3 changed files with 12 additions and 4 deletions

View File

@ -508,7 +508,13 @@ final class InvidiousAPI: Service, ObservableObject, VideosAPI {
} }
private func extractAdaptiveFormats(from streams: [JSON]) -> [Stream] { private func extractAdaptiveFormats(from streams: [JSON]) -> [Stream] {
guard let audioStream = streams.first(where: { $0["type"].stringValue.starts(with: "audio/mp4") }) else { let audioStreams = streams
.filter { $0["type"].stringValue.starts(with: "audio/mp4") }
.sorted {
$0.dictionaryValue["bitrate"]?.int ?? 0 >
$1.dictionaryValue["bitrate"]?.int ?? 0
}
guard let audioStream = audioStreams.first else {
return .init() return .init()
} }

View File

@ -124,7 +124,6 @@ struct PlayerControls: View {
.foregroundColor(.secondary) .foregroundColor(.secondary)
.modifier(ControlBackgroundModifier()) .modifier(ControlBackgroundModifier())
.clipShape(RoundedRectangle(cornerRadius: 2)) .clipShape(RoundedRectangle(cornerRadius: 2))
.offset(x: -2, y: -2)
} }
.buttonStyle(.plain) .buttonStyle(.plain)
.opacity(model.presentingControls || model.presentingOverlays ? 0 : player.lastSkipped.isNil ? 0 : 1) .opacity(model.presentingControls || model.presentingOverlays ? 0 : player.lastSkipped.isNil ? 0 : 1)

View File

@ -41,6 +41,7 @@ struct VideoPlayerView: View {
@State private var orientation = UIInterfaceOrientation.portrait @State private var orientation = UIInterfaceOrientation.portrait
@State private var lastOrientation: UIInterfaceOrientation? @State private var lastOrientation: UIInterfaceOrientation?
#elseif os(macOS) #elseif os(macOS)
var hoverThrottle = Throttle(interval: 0.5)
var mouseLocation: CGPoint { NSEvent.mouseLocation } var mouseLocation: CGPoint { NSEvent.mouseLocation }
#endif #endif
@ -209,9 +210,11 @@ struct VideoPlayerView: View {
#elseif os(macOS) #elseif os(macOS)
.onAppear(perform: { .onAppear(perform: {
NSEvent.addLocalMonitorForEvents(matching: [.mouseMoved]) { NSEvent.addLocalMonitorForEvents(matching: [.mouseMoved]) {
hoverThrottle.execute {
if !player.currentItem.isNil, hoveringPlayer { if !player.currentItem.isNil, hoveringPlayer {
playerControls.resetTimer() playerControls.resetTimer()
} }
}
return $0 return $0
} }