InstreamSDK 1.0.0

InstreamSDK 1.0.0

Cédric Derache 维护。



  • 作者
  • Beapp

Digiteka InStream 框架

en fr

安装

只需使用以下任一方案,将依赖项添加到您的项目中

CocoaPods

您可以使用 CocoaPods 通过将其添加到您的 Podfile 中来安装 InStreamSDK

pod 'InStreamSDK', '~> 1.0.1'

Swift 包管理器

您可以通过将以下 URL 添加到 Xcode 中的公共包仓库中,将 InStreamSDK 集成为 Swift 包

[email protected]:beappers/digiteka.instream.xcframework.git

用法

然后在您的 ApplicationDelegate 类的 application(_:didFinishLaunchingWithOptions:) 中,添加以下代码以初始化 SDK

do {
    try InStream.shared.initialize(config: DTKISConfig(apiKey: "01357940"))
} catch {
    print("Can't init InStream with error \(error.localizedDescription)")
}

日志记录器

可选地,您可以为 SDK 获取日志设置一个自定义日志记录器。日志记录器必须实现 DTKISLoggerDelegate 协议

extension AppDelegate: DTKISLoggerDelegate {
    func InStreamWarn(message: String) {
        print("warn " + message)
    }
    
    func InStreamError(message: String, error: Error?) {
        print("error " + message, error as Any)
    }
}

然后将日志记录器传递

InStream.shared.setLoggerDelegate(self)

配置

DTKISConfig

  • mdtk (String) : api key
  • debugMode (Boolean) : 可选

DTKISMainPlayerConfig

  • zone (String) : 包含视频的网站的区域
  • src (String) : 您想播放的视频 ID
  • urlreferrer (String) : 桌面文章的 URL (URLreferrer)
  • gdprconsentstring (String) : 用户同意字符串
  • tagparam (String) : 可选的广告参数
  • playMode (PlayMode): .user : 用户必须点击播放,.auto : 加载时自动播放,.scroll : 滚动 50% 以自动播放

DTKISVisiblePlayerConfig

  • playerPosition (VisiblePlayerPosition) : 可见播放器的位置 (TOP_START, TOP_END, BOTTOM_START, BOTTOM_END)
  • widthPercent (WidthProportion) : 播放器宽度相对于父视图的百分比
  • ratio (Ratio) : 视频播放器宽高比
  • horizontalMargin (CGFloat) : 可见播放器的边距
  • verticalMargin (CGFloat) : 可见播放器的边距

MainPlayerView (UIKit)

通过调用创建一个 MainPlayerView 实例

var myMainPlayerView: MainPlayerView?
let myConfig: DTKISMainPlayerConfig = ... your config

do {
    try myMainPlayerView = InStream.shared.initMainPlayerWith(config: myConfig) 
} catch {
    // it may throw an error if not initialized correctly
}

然后调用将它在 containerview (可以是UITableViewCell中的UIView,或只是一个 UIView) 中放置

myMainPlayerView?.setIn(containerView: myContainerView)

如果播放模式设置为滚动到 50% (UIKit)

在您的 UIViewController 中,保留 MainPlayerView 的一个实例。然后使用此 UIScrollView 的扩展

extension MyViewController: UIScrollViewDelegate {
    func scrollViewDidScroll(_ scrollView: UIScrollView) {
    
        if let myMainPlayerView = myMainPlayerCell.myMainPlayerView {
        
            myMainPlayerView.viewDidScroll(scrollView: scrollView)
        }
    }
}

可见播放器 (UIKit)

在您的 UIViewController 中

var visiblePlayer: VisiblePlayer?

override func viewDidLoad() {
    super.viewDidLoad()
    
    let myConfig: DTKISVisiblePlayerConfig = ... your config
    
    myVisiblePlayer = InStream.shared.initVisiblePlayerWith(config: myConfig, in: self.view, scrollView: scrollView)
}


extension MyViewController: UIScrollViewDelegate {
    func scrollViewDidScroll(_ scrollView: UIScrollView) {
    
        if let myMainPlayerCell = myMainPlayerCell, let myMainPlayerView = myMainPlayerCell.mainPlayerView {
        
            visiblePlayer?.viewDidScroll(mainPlayerView: myMainPlayerView)
        }
    }
}

MainPlayer 和可见播放器 (SwiftUI)

如果仅需要 MainPlayer 实例(带有 playMode = .auto 或 .user),则可以简单地调用

InStream.shared.initMainPlayerRepresentable(config: DTKISMainPlayerConfig)

它返回一个可用于滚动视图的 View

如果您计划使用其他功能,例如可见播放器或 playMode = .scroll,则必须使用 InStreamScrollVStack,这是一个您可以添加内容的 ScrollView

    InStreamScrollVStack(config: mainPlayerConfig, visiblePlayerConfig: visiblePlayerConfig, data: mockData, playerInsertPosition: 10) { element in
        Text("element.id")
            .fixedSize(horizontal: false, vertical: true)
    }

如果没有需要可见播放器,可见播放器配置可以是 nil

错误和日志

类型 错误代码 级别 信息 原因
配置 DTKIS_CONF_3 错误 InStream sdk 尚未初始化。请先调用 InStream.shared.initialize InStream.shared.initialize 尚未调用