AntViewer 1.0.18

AntViewer 1.0.18

Nick94 维护。



 
依赖
Firebase/Core>= 0
Firebase/Auth>= 0
Firebase/Firestore>= 0
 

AntViewer 1.0.18

  • Mykola Vaniurskyi

Antourage Widget SDK

Version License Platform

功能描述

Antourage Widget 设计成为主机应用中的独立“小部件”。它显示由我们移动广播应用捕获的实时直播和点播视频。Antourage 以移动优先,旨在创建和查看实时和准实时的小型内容。

磁力按钮

用户入口是在主机应用主屏幕上显示的磁力按钮。

当视频正在直播时,按钮状态会变化,并显示直播的标题和主播的名称。如果用户在此时刻点击按钮,他们将被直接带到直播。

Screenshots

如果没有视频正在直播,按钮将显示观众尚未观看的点播视频数量。如果他们在此时刻点击按钮,他们将转到主视图。

Screenshots

观看直播

视频播放器可以使用横屏或竖屏模式。在这两种模式下,观众可以观看广播、看到并参与评论以及看到并对民意调查做出回应。

Screenshots Screenshots

点播视频

当用户点击视频时,视频从头开始播放,或者如果该视频已经被部分观看,它会从观众最后观看的点开始播放。Antourage小部件会追踪用户看了哪些视频,并根据磁按钮上的数值相应更新。

每个视频都会显示视频名称、主播名称、总时长和观看总数。

显示名称

为了在评论中发表意见,用户必须在我们系统中有一个身份,以及一个在评论流中显示的显示名称。由于并非所有主机应用程序都要求用户名,我们要求用户在首次尝试聊天时创建一个显示名称。如果主机应用程序确实要求用户创建用户名,我们可以关闭此功能。

评论

只有直播的观众可以发表评论。当视频被后续观看时,这些评论可能会显示,但无法添加。主播有权审查视频上的评论并删除他们认为不可接受的评论。Antourage管理员也有此权限。

民意调查

民意调查由主播创建,在直播期间发布。它们在首次推向观众时出现在屏幕上,观众可以做出回应或简单地关闭民意调查(如果他们不想回答)。如果他们回答了,就会立即显示结果,并且他们可以随着结果的到来查看更新的结果。

Screenshots

内容精选

只有被我们的客户主动选中的内容创建者才能创建内容,并且传播者可以随时从视图中移除自己的内容。每位客户为其内容的存储和展示指定一个时间段,通常是2周至6周。在存储期结束后,内容将自动被移除。这三个元素——主动选定的创作者、视频移除和视频老化——确保观看者能够获得持续且有趣的新鲜内容体验。

第三方技术

为了支持我们的功能,我们使用一些第三方服务和应用程序。
Firebase:用于推送通知、评论和投票。
Amazon Media Live:用于流式传输和托管我们的内容。

示例

要运行示例项目,首先克隆仓库,然后从示例目录运行 pod install

要求

iOS 11.3 +

安装

AntViewer可以通过CocoaPods获取。要安装,只需将以下行添加到Podfile中:pod 'AntViewer'。然后运行$ pod install

Plist条目

为了让您的应用访问相机,您需要添加以下 plist条目

  • 隐私 - 摄像头使用描述(照片/视频)
<key>NSCameraUsageDescription</key>
<string>yourWording</string>

使用

认证

这是一个静态方法(无需对象初始化),您可以在任何需要的地方使用它(登录/应用程序启动等)。

AntWidget.authWith(apiKey: "put_your_apiKey_there", refUserId: "put_user_id_from_your_base_or_nil", nickname: "put_user_nickname_from_your_base_or_nil") { result in
  switch result {
  case .success:
    break
  case .failure(let error):
    print(error)
  }
}

推送通知

在我们的项目中,我们使用Firebase来实现PN。为了在您的端支持PN,您应该获取我们的发送ID的令牌,在认证成功后立即将所需的所有数据发送给我们(您可以在认证成功的块中调用它)并订阅我们的主题。
senderID = 1090288296965

  //MARK: Connect PN to Antourage Firebase app
  Messaging.messaging().retrieveFCMToken(forSenderID: "1090288296965") { (token, error) in
    AntWidget.registerNotifications(FCMToken: token) { (result) in
      switch result {
       case .success(let topic):
         Messaging.messaging().subscribe(toTopic: topic)
       case .failure(let notificationError):
         print(notificationError.localizedDescription)
       }
    }
  }

添加UI部分

程序化

class ViewController: UIViewController {

  var widget: AntWidget! {
    didSet {
      view.addSubview(widget)
      widget.bottomMargin = 30
      widget.rightMargin = 40
    }
  }

  override func viewDidLoad() {
    super.viewDidLoad()
    widget = AntWidget()
    widget.onViewerAppear = { [weak self] _ in
      self?.changeSomething()
    }
  }
}

或通过界面构建器:只需添加UIView,将AntWidget输入到类字段,将其链接到出口。就是这样。

属性 类型 描述
isLightMode Bool 有两个小部件外观模式:浅色 & 深色。默认为false。
bottomMargin Int 底部边距。默认:20。
rightMargin Int Right margin. Default: 20.
onViewerAppear Closure 当用户打开小部件控制器时调用。
onViewerDisappear Closure 当用户关闭小部件控制器时调用。

作者

Mykola Vaniurskyi, [email protected]

授权协议

AntViewer 在 MIT 许可下可用。有关更多信息,请参阅 LICENSE 文件。