(Kéo xuống phía dưới để đọc tiếng Việt)
UizaSDK is a framework to connect to Uiza system
UizaSDK requires Swift 5.0 and iOS 8+
To integrate UizaSDK into your Xcode project using CocoaPods, specify it in your Podfile
:
pod 'UizaSDK' // for iOS 10+
pod 'UizaSDK8' // for iOS 8,9
pod 'UizaSDK' , '~> 7.0.7-swift3' // for Swift 3.x
Then run the following command:
$ pod install
Download UizaSDK.framework
and drag it into your project, add it to Embbeded Binaries section
pod 'google-cast-sdk'
pod 'GoogleAds-IMA-iOS-SDK'
Then run the following command:
$ pod install
Please refer Dependencies-matrix.md file for GoogleCast and GoogleInteractiveMediaAds version
Always initialize the framework by the following line before calling any API functions:
import UizaSDK
UizaSDK.initWith(appId: YOUR_APP_ID, token: TOKEN, api: YOUR_DOMAIN, version: API_VERSION)
YOUR_APP_ID and YOUR_DOMAIN : get from registration email
TOKEN: generate from https://docs.uiza.io/#get-api-key
API_VERSION: version of target API, set .v3 or .v4 (default is .v3)
UZContentServices().loadDetail(entityId: ENTITY_ID, completionBlock: { (videoItem, error) in
if error != nil {
print("Error: \(error)")
}
else {
print("Video: \(videoItem)")
}
})
let playerViewController = UZPlayerViewController()
playerViewController.player.loadVideo(entityId: ENTITY_ID)
present(playerViewController, animated: true, completion: nil)
You might have to add these lines to Info.plist
to disable App Transport Security (ATS) to be able to play video:
<key>NSAppTransportSecurity</key>
<dict>
<key>NSAllowsArbitraryLoads</key><true/>
</dict>
let viewController = UZLiveStreamViewController()
viewController.liveEventId = ENTITY_ID
self.present(viewController, animated: true, completion: nil)
Remember to add these usage description keys into Info.plist
file:
<key>NSCameraUsageDescription</key>
<string>App needs access to camera for livestream</string>
<key>NSMicrophoneUsageDescription</key>
<string>App needs access to microphone for livestream</string>
let playerViewController = UZPlayerViewController()
playerViewController.player.theme = UZTheme1()
UizaPlayer currently has 7 built-in themes:
You can create your own custom theme by creating a class inheriting from UZPlayerTheme Protocol following this template: UZCustomTheme
You can also create your custom end screen by subclassing UZEndscreenView
, then set an instance to player.controlView.endscreenView
self.playerViewController.player.controlView.endscreenView = MyCustomEndScreen()
You can enable/ disable developer mode. (disable by default)
self.playerViewController.player.isVisualizeInfoEnabled = true/ false
You can create player with "drag down to floating mode" like Facebook or Youtube, by subclassing UZFloatingPlayerViewController, then you can add more UI for displaying video details and add them to detailsContainerView
Then present using this code:
UZFloatingPlayerViewController().present(with: videoItem, playlist: playlist)
See Example
For API details, check API Document
If developing using Xcode 10 and targeting iOS devices running iOS 12 or higher, the "Access WiFi Information" capability is required in order to discover and connect to Cast devices
UizaSDK is released under the BSD license. See LICENSE for details.
UizaSDK là bộ Framework hỗ trợ kết nối đến API của hệ thống Uiza
UizaSDK yêu cầu Swift 5.0 và iOS 8+
Cài đặt thông qua CocoaPods
Thêm vào Podfile
dòng sau:
pod 'UizaSDK' // dùng cho phiên bản iOS 10 trở lên
pod 'UizaSDK8' // dùng cho phiên bản iOS 8,9
pod 'UizaSDK' , '~> 7.0.7-swift3' // dành cho project viết bằng Swift 3.x
Sau đó chạy lệnh này:
$ pod install
Tải UizaSDK.framework
và kéo vào project của bạn, thêm nó vào mục Embbeded Binaries
pod 'google-cast-sdk'
pod 'GoogleAds-IMA-iOS-SDK'
Tham khảo file Dependencies-matrix.md để sử dụng version thích hợp của GoogleCast và GoogleInteractiveMediaAds
Sau đó chạy lệnh này:
$ pod install
Luôn khởi động framework này trước khi gọi bất cứ hàm API nào bằng cách gọi lệnh sau:
import UizaSDK
UizaSDK.initWith(appId: YOUR_APP_ID, token: TOKEN, api: YOUR_DOMAIN, version: API_VERSION)
YOUR_APP_ID và YOUR_DOMAIN : lấy từ thông tin trong email đăng ký
TOKEN: được tạo từ trang https://docs.uiza.io/#get-api-key
API_VERSION: phiên bản API sử dụng, truyền vào .v3 hoặc .v4 (nếu không truyền, mặc định là .v3)
UZContentServices().loadDetail(entityId: ENTITY_ID, completionBlock: { (videoItem, error) in
if error != nil {
print("Error: \(error)")
}
else {
print("Video: \(videoItem)")
}
})
let playerViewController = UZPlayerViewController()
playerViewController.player.loadVideo(entityId: ENTITY_ID)
present(playerViewController, animated: true, completion: nil)
Nếu gặp trường hợp video không play được do vấn đề App Transport Security (ATS), bạn phải thêm dòng sau vào file Info.plist
để có thể play được video:
<key>NSAppTransportSecurity</key>
<dict>
<key>NSAllowsArbitraryLoads</key><true/>
</dict>
let viewController = UZLiveStreamViewController()
viewController.liveEventId = [ENTITY_ID]
self.present(viewController, animated: true, completion: nil)
Nhớ thêm mô tả yêu cầu chức năng truy cập camera và micro vào file Info.plist
:
<key>NSCameraUsageDescription</key>
<string>App cần truy cập camera để phát livestream</string>
<key>NSMicrophoneUsageDescription</key>
<string>App cần truy cập micro để thu tiếng khi phát livestream</string>
let playerViewController = UZPlayerViewController()
playerViewController.player.theme = UZTheme1()
UizaPlayer có sẵn 7 giao diện sau:
Bạn có thể tự tạo giao diện riêng bằng cách tạo class kế thừa UZPlayerTheme Protocol theo mẫu code này: UZCustomTheme
Bạn cũng có thể thay đổi giao diện của màn hình kết thúc bằng cách tạo class kế thừa UZEndscreenView
, sau đó đưa nó vào player.controlView.endscreenView
self.playerViewController.player.controlView.endscreenView = MyCustomEndScreen()
Bạn có thể hiển thị/ vô hiệu hoá chế độ cho nhà phát triển. (mặc định là vô hiệu hoá)
self.playerViewController.player.isVisualizeInfoEnabled = true/ false
Bạn có thể tạo player với chức năng "kéo xuống góc màn hình" giống Facebook hoặc Youtube bằng cách tạo class kế thừa UZFloatingPlayerViewController, trong đó bạn có thể thêm các UI hiển thị chi tiết của video và đưa vào detailsContainerView
Sau đó present bằng lệnh sau:
UZFloatingPlayerViewController().present(with: videoItem, playlist: playlist)
Xem Ví dụ
Nếu bạn sử dụng Xcode 10 và phát triển cho iOS 12 trở lên, cần phải bật "Access WiFi Information" thì chức năng tìm kiếm các thiết bị Cast mới có thể hoạt động
Xem chi tiết Tài liệu API