LNVAPFacade.swift 8.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233
  1. import Foundation
  2. import UIKit
  3. @objcMembers
  4. public final class LNVAPFacade: NSObject {
  5. @objc public static func lnMakePlayerView(frame: CGRect) -> LNVAPPlayerView {
  6. LNVAPPlayerView(frame: frame)
  7. }
  8. @objc public static func lnMakeWrapView(frame: CGRect) -> LNVAPWrapView {
  9. LNVAPWrapView(frame: frame)
  10. }
  11. @objc public static func lnUseDefaultLogBridge() {
  12. // Swift facade keeps log registration centralized through LNVAPLogger.
  13. }
  14. @objc(lnRegisterLogHandler:)
  15. public static func lnRegisterLogHandler(_ handler: @escaping LNVAPLogger.LNLogHandler) {
  16. LNVAPLogger.registerExternalLog(handler)
  17. }
  18. @objc(lnClearLogHandler)
  19. public static func lnClearLogHandler() {
  20. LNVAPLogger.clearLogHandler()
  21. }
  22. // MARK: - Wrap View Ops (ObjC-friendly façade)
  23. @objc(lnPlayWrap:filePath:repeatCount:)
  24. public static func lnPlayWrap(_ wrapView: LNVAPWrapView, filePath: String, repeatCount: Int) {
  25. wrapView.lnPlay(filePath: filePath, repeatCount: repeatCount)
  26. }
  27. @objc(lnPlayWrap:filePath:)
  28. public static func lnPlayWrap(_ wrapView: LNVAPWrapView, filePath: String) {
  29. wrapView.lnPlay(filePath: filePath)
  30. }
  31. @objc(lnPlayWrap:filePath:repeatCount:delegate:)
  32. public static func lnPlayWrap(_ wrapView: LNVAPWrapView, filePath: String, repeatCount: Int, delegate: LNVAPWrapPlaybackDelegate?) {
  33. wrapView.delegate = delegate
  34. wrapView.lnPlay(filePath: filePath, repeatCount: repeatCount)
  35. }
  36. @objc(lnPlayWrap:filePath:delegate:)
  37. public static func lnPlayWrap(_ wrapView: LNVAPWrapView, filePath: String, delegate: LNVAPWrapPlaybackDelegate?) {
  38. lnPlayWrap(wrapView, filePath: filePath, repeatCount: 0, delegate: delegate)
  39. }
  40. @objc(lnPlayWrapDeprecated:filePath:fps:blendMode:repeatCount:delegate:)
  41. public static func lnPlayWrapDeprecated(_ wrapView: LNVAPWrapView,
  42. filePath: String,
  43. fps: Int,
  44. blendMode: Int,
  45. repeatCount: Int,
  46. delegate: LNVAPWrapPlaybackDelegate?) {
  47. wrapView.lnPlayDeprecated(filePath: filePath, fps: fps, blendMode: blendMode, repeatCount: repeatCount, delegate: delegate)
  48. }
  49. @objc(lnStopWrap:)
  50. public static func lnStopWrap(_ wrapView: LNVAPWrapView) {
  51. wrapView.lnStop()
  52. }
  53. @objc(lnPauseWrap:)
  54. public static func lnPauseWrap(_ wrapView: LNVAPWrapView) {
  55. wrapView.lnPause()
  56. }
  57. @objc(lnResumeWrap:)
  58. public static func lnResumeWrap(_ wrapView: LNVAPWrapView) {
  59. wrapView.lnResume()
  60. }
  61. @objc(lnSetMuteWrap:mute:)
  62. public static func lnSetMuteWrap(_ wrapView: LNVAPWrapView, mute: Bool) {
  63. wrapView.lnSetMute(mute)
  64. }
  65. @objc(lnSetWrapContentMode:mode:)
  66. public static func lnSetWrapContentMode(_ wrapView: LNVAPWrapView, mode: LNVAPWrapContentMode) {
  67. wrapView.contentModeOption = mode
  68. }
  69. @objc(lnGetWrapContentMode:)
  70. public static func lnGetWrapContentMode(_ wrapView: LNVAPWrapView) -> LNVAPWrapContentMode {
  71. wrapView.contentModeOption
  72. }
  73. @objc(lnSetWrapAutoDestroyAfterFinish:enabled:)
  74. public static func lnSetWrapAutoDestroyAfterFinish(_ wrapView: LNVAPWrapView, enabled: Bool) {
  75. wrapView.autoDestroyAfterFinish = enabled
  76. }
  77. @objc(lnGetWrapAutoDestroyAfterFinish:)
  78. public static func lnGetWrapAutoDestroyAfterFinish(_ wrapView: LNVAPWrapView) -> Bool {
  79. wrapView.autoDestroyAfterFinish
  80. }
  81. @objc(lnAddWrapTapGesture:handler:)
  82. public static func lnAddWrapTapGesture(_ wrapView: LNVAPWrapView, handler: @escaping LNVAPGestureEventBlock) {
  83. wrapView.lnAddVapTapGesture(handler)
  84. }
  85. @objc(lnAddWrapGesture:gesture:callback:)
  86. public static func lnAddWrapGesture(_ wrapView: LNVAPWrapView, gesture: UIGestureRecognizer, callback: @escaping LNVAPGestureEventBlock) {
  87. wrapView.lnAddVapGesture(gesture, callback: callback)
  88. }
  89. // MARK: - Player View Ops
  90. @objc(lnPlayPlayer:filePath:repeatCount:)
  91. public static func lnPlayPlayer(_ playerView: LNVAPPlayerView, filePath: String, repeatCount: Int) {
  92. playerView.lnPlay(filePath: filePath, repeatCount: repeatCount)
  93. }
  94. @objc(lnPlayPlayer:filePath:)
  95. public static func lnPlayPlayer(_ playerView: LNVAPPlayerView, filePath: String) {
  96. playerView.lnPlay(filePath: filePath)
  97. }
  98. @objc(lnPlayPlayer:filePath:repeatCount:delegate:)
  99. public static func lnPlayPlayer(_ playerView: LNVAPPlayerView, filePath: String, repeatCount: Int, delegate: LNVAPPlaybackDelegate?) {
  100. playerView.delegate = delegate
  101. playerView.lnPlay(filePath: filePath, repeatCount: repeatCount)
  102. }
  103. @objc(lnPlayPlayer:filePath:delegate:)
  104. public static func lnPlayPlayer(_ playerView: LNVAPPlayerView, filePath: String, delegate: LNVAPPlaybackDelegate?) {
  105. lnPlayPlayer(playerView, filePath: filePath, repeatCount: 0, delegate: delegate)
  106. }
  107. @objc(lnPlayPlayerDeprecated:filePath:fps:blendMode:repeatCount:delegate:)
  108. public static func lnPlayPlayerDeprecated(_ playerView: LNVAPPlayerView,
  109. filePath: String,
  110. fps: Int,
  111. blendMode: Int,
  112. repeatCount: Int,
  113. delegate: LNVAPPlaybackDelegate?) {
  114. playerView.lnPlayDeprecated(filePath: filePath, fps: fps, blendMode: blendMode, repeatCount: repeatCount, delegate: delegate)
  115. }
  116. @objc(lnStopPlayer:)
  117. public static func lnStopPlayer(_ playerView: LNVAPPlayerView) {
  118. playerView.lnStop()
  119. }
  120. @objc(lnPausePlayer:)
  121. public static func lnPausePlayer(_ playerView: LNVAPPlayerView) {
  122. playerView.lnPause()
  123. }
  124. @objc(lnResumePlayer:)
  125. public static func lnResumePlayer(_ playerView: LNVAPPlayerView) {
  126. playerView.lnResume()
  127. }
  128. @objc(lnSetMutePlayer:mute:)
  129. public static func lnSetMutePlayer(_ playerView: LNVAPPlayerView, mute: Bool) {
  130. playerView.lnSetMute(mute)
  131. }
  132. @objc(lnEnableOldVersionOnPlayer:enable:)
  133. public static func lnEnableOldVersionOnPlayer(_ playerView: LNVAPPlayerView, enable: Bool) {
  134. playerView.lnEnableOldVersion(enable)
  135. }
  136. @objc(lnSetPlayerFPS:fps:)
  137. public static func lnSetPlayerFPS(_ playerView: LNVAPPlayerView, fps: Int) {
  138. playerView.fps = fps
  139. }
  140. @objc(lnGetPlayerFPS:)
  141. public static func lnGetPlayerFPS(_ playerView: LNVAPPlayerView) -> Int {
  142. playerView.fps
  143. }
  144. @objc(lnSetPlayerRenderByOpenGL:enabled:)
  145. public static func lnSetPlayerRenderByOpenGL(_ playerView: LNVAPPlayerView, enabled: Bool) {
  146. playerView.renderByOpenGL = enabled
  147. }
  148. @objc(lnGetPlayerRenderByOpenGL:)
  149. public static func lnGetPlayerRenderByOpenGL(_ playerView: LNVAPPlayerView) -> Bool {
  150. playerView.renderByOpenGL
  151. }
  152. @objc(lnSetPlayerEnterBackgroundOperation:operation:)
  153. public static func lnSetPlayerEnterBackgroundOperation(_ playerView: LNVAPPlayerView, operation: LNEnterBackgroundOperation) {
  154. playerView.enterBackgroundOperation = operation
  155. }
  156. @objc(lnGetPlayerEnterBackgroundOperation:)
  157. public static func lnGetPlayerEnterBackgroundOperation(_ playerView: LNVAPPlayerView) -> LNEnterBackgroundOperation {
  158. playerView.enterBackgroundOperation
  159. }
  160. @objc(lnGetPlayerCurrentFrame:)
  161. public static func lnGetPlayerCurrentFrame(_ playerView: LNVAPPlayerView) -> LNMP4AnimatedImageFrame? {
  162. playerView.lnCurrentFrame
  163. }
  164. @objc(lnGetPlayerMP4FilePath:)
  165. public static func lnGetPlayerMP4FilePath(_ playerView: LNVAPPlayerView) -> String {
  166. playerView.lnMP4FilePath
  167. }
  168. @objc(lnSetPlayerMaskInfo:maskInfo:)
  169. public static func lnSetPlayerMaskInfo(_ playerView: LNVAPPlayerView, maskInfo: LNVAPMaskInfo?) {
  170. playerView.maskInfo = maskInfo
  171. }
  172. @objc(lnGetPlayerMaskInfo:)
  173. public static func lnGetPlayerMaskInfo(_ playerView: LNVAPPlayerView) -> LNVAPMaskInfo? {
  174. playerView.maskInfo
  175. }
  176. @objc(lnAddPlayerTapGesture:target:action:)
  177. public static func lnAddPlayerTapGesture(_ playerView: LNVAPPlayerView, target: Any, action: Selector) {
  178. playerView.lnAddTapGesture(target: target, action: action)
  179. }
  180. @objc(lnAddPlayerVapTapGesture:handler:)
  181. public static func lnAddPlayerVapTapGesture(_ playerView: LNVAPPlayerView, handler: @escaping LNVAPGestureEventBlock) {
  182. playerView.lnAddVapTapGesture(handler)
  183. }
  184. @objc(lnAddPlayerVapGesture:gesture:callback:)
  185. public static func lnAddPlayerVapGesture(_ playerView: LNVAPPlayerView, gesture: UIGestureRecognizer, callback: @escaping LNVAPGestureEventBlock) {
  186. playerView.lnAddVapGesture(gesture, callback: callback)
  187. }
  188. }