diff --git a/ios/Runner/MpvPlayer/MpvPlayerCore.swift b/ios/Runner/MpvPlayer/MpvPlayerCore.swift index f520a2ff..abd9c7c0 100644 --- a/ios/Runner/MpvPlayer/MpvPlayerCore.swift +++ b/ios/Runner/MpvPlayer/MpvPlayerCore.swift @@ -236,6 +236,11 @@ class MpvPlayerCore: NSObject { return cstr.map { String(cString: $0) } } + func setLogLevel(_ level: String) { + guard let mpv = mpv else { return } + mpv_request_log_messages(mpv, level) + } + func observeProperty(_ name: String, format: String) { guard mpv != nil else { return } diff --git a/ios/Runner/MpvPlayer/MpvPlayerPlugin.swift b/ios/Runner/MpvPlayer/MpvPlayerPlugin.swift index cb74ad5c..a6483348 100644 --- a/ios/Runner/MpvPlayer/MpvPlayerPlugin.swift +++ b/ios/Runner/MpvPlayer/MpvPlayerPlugin.swift @@ -80,6 +80,9 @@ class MpvPlayerPlugin: NSObject, FlutterPlugin, FlutterStreamHandler, MpvPlayerD case "updateFrame": handleUpdateFrame(result: result) + case "setLogLevel": + handleSetLogLevel(call: call, result: result) + default: result(FlutterMethodNotImplemented) } @@ -218,6 +221,16 @@ class MpvPlayerPlugin: NSObject, FlutterPlugin, FlutterStreamHandler, MpvPlayerD } } + private func handleSetLogLevel(call: FlutterMethodCall, result: @escaping FlutterResult) { + guard let args = call.arguments as? [String: Any], + let level = args["level"] as? String else { + result(FlutterError(code: "INVALID_ARGS", message: "Missing 'level'", details: nil)) + return + } + playerCore?.setLogLevel(level) + result(nil) + } + // MARK: - MpvPlayerDelegate func onPropertyChange(name: String, value: Any?) {