Skip to content

Commit

Permalink
fix #568
Browse files Browse the repository at this point in the history
  • Loading branch information
kingslay committed Oct 4, 2023
1 parent 858ed51 commit 8701fe7
Show file tree
Hide file tree
Showing 5 changed files with 33 additions and 38 deletions.
27 changes: 8 additions & 19 deletions Demo/SwiftUI/Shared/MovieModel.swift
Original file line number Diff line number Diff line change
Expand Up @@ -243,17 +243,6 @@ extension MovieModel {
}
}

func save() {
guard let context = managedObjectContext else {
return
}
context.perform {
do {
try context.save()
} catch {}
}
}

func getPlaymodel() -> PlayModel {
if let playmodel {
return playmodel
Expand All @@ -266,19 +255,13 @@ extension MovieModel {
newMovieModel.setValuesForKeys(dictionaryWithValues(forKeys: entity.attributesByName.keys.map { $0 }))
newMovieModel.playmodel = model
context.assign(newMovieModel, to: privateStore)
try? context.save()
newMovieModel.save()
context.delete(self)
return model
}
}

extension NSManagedObject {}

extension PlayModel {
convenience init() {
self.init(context: PersistenceController.shared.viewContext)
}

extension NSManagedObject {
func save() {
guard let context = managedObjectContext else {
return
Expand All @@ -291,6 +274,12 @@ extension PlayModel {
}
}

extension PlayModel {
convenience init() {
self.init(context: PersistenceController.shared.viewContext)
}
}

extension KSVideoPlayerView {
init(url: URL) {
let request = NSFetchRequest<MovieModel>(entityName: "MovieModel")
Expand Down
6 changes: 3 additions & 3 deletions Sources/KSPlayer/Subtitle/KSSubtitle.swift
Original file line number Diff line number Diff line change
Expand Up @@ -239,23 +239,23 @@ open class SubtitleModel: ObservableObject {
switch self {
case .smaller:
#if os(tvOS)
return 30
return 48
#elseif os(macOS)
return 20
#else
return 12
#endif
case .standard:
#if os(tvOS)
return 36
return 58
#elseif os(macOS)
return 26
#else
return 16
#endif
case .large:
#if os(tvOS)
return 42
return 68
#elseif os(macOS)
return 32
#else
Expand Down
9 changes: 5 additions & 4 deletions Sources/KSPlayer/Subtitle/SubtitleDataSouce.swift
Original file line number Diff line number Diff line change
Expand Up @@ -168,19 +168,18 @@ public class ShooterSubtitleDataSouce: SearchSubtitleDataSouce {
guard let json = try JSONSerialization.jsonObject(with: data) as? [[String: Any]] else {
return
}
json.forEach { sub in
infos = json.flatMap { sub in
let filesDic = sub["Files"] as? [[String: String]]
// let desc = sub["Desc"] as? String ?? ""
let delay = TimeInterval(sub["Delay"] as? Int ?? 0) / 1000.0
let result = filesDic?.compactMap { dic in
return filesDic?.compactMap { dic in
if let string = dic["Link"], let url = URL(string: string) {
let info = URLSubtitleInfo(subtitleID: string, name: "", url: url)
info.delay = delay
return info
}
return nil
} ?? [URLSubtitleInfo]()
self.infos.append(contentsOf: result)
}
}
}
Expand Down Expand Up @@ -214,11 +213,13 @@ public class AssrtSubtitleDataSouce: SearchSubtitleDataSouce {
guard let subDict = json["sub"] as? [String: Any], let subArray = subDict["subs"] as? [[String: Any]] else {
return
}
var result = [URLSubtitleInfo]()
for sub in subArray {
if let assrtSubID = sub["id"] as? Int {
try await infos.append(contentsOf: loadDetails(assrtSubID: String(assrtSubID)))
try await result.append(contentsOf: loadDetails(assrtSubID: String(assrtSubID)))
}
}
infos = result
}

func loadDetails(assrtSubID: String) async throws -> [URLSubtitleInfo] {
Expand Down
22 changes: 11 additions & 11 deletions Sources/KSPlayer/SwiftUI/KSVideoPlayerView.swift
Original file line number Diff line number Diff line change
Expand Up @@ -191,19 +191,19 @@ public struct KSVideoPlayerView: View {
// return .handled
// }
#if os(macOS)
.onTapGesture(count: 2) {
guard let view = playerCoordinator.playerLayer else {
return
.onTapGesture(count: 2) {
guard let view = playerCoordinator.playerLayer else {
return
}
view.window?.toggleFullScreen(nil)
view.needsLayout = true
view.layoutSubtreeIfNeeded()
}
.onExitCommand {
playerCoordinator.playerLayer?.exitFullScreenMode()
}
view.window?.toggleFullScreen(nil)
view.needsLayout = true
view.layoutSubtreeIfNeeded()
}
.onExitCommand {
playerCoordinator.playerLayer?.exitFullScreenMode()
}
#else
.onTapGesture {
.onTapGesture {
isMaskShow.toggle()
}
#endif
Expand Down
7 changes: 6 additions & 1 deletion Sources/KSPlayer/Video/VideoPlayerView.swift
Original file line number Diff line number Diff line change
Expand Up @@ -240,7 +240,12 @@ open class VideoPlayerView: PlayerView {
if srtControl.subtitle(currentTime: currentTime) {
if let part = srtControl.parts.first {
subtitleBackView.image = part.image
subtitleLabel.attributedText = part.text
if let text = part.text {
let attributedText = NSMutableAttributedString(attributedString: text)
attributedText.addAttributes([.font: SubtitleModel.textFont],
range: NSRange(location: 0, length: text.length))
subtitleLabel.attributedText = attributedText
}
subtitleBackView.isHidden = false
} else {
subtitleBackView.image = nil
Expand Down

0 comments on commit 8701fe7

Please sign in to comment.