# AirPlay Plugin for ByteArk Player SDK iOS
# คุณสมบัติ
- รองรับการใช้งาน Apple AirPlay
# ความต้องการ ของ Plugin
- iOS 13 หรือสูงกว่า
- XCode
- Swift 5.5
- ByteArkPlayerSDK version >= 0.2.1
# การติดตั้ง Plugin
# CocoaPods (แนะนำ)
CocoaPods (opens new window) เป็นเครื่องมือจัดการ dependencies สำหรับโปรเจกต์ Cocoa คุณสามารถติดตั้งได้ด้วยคำสั่งดังนี้:
gem install cocoapods
1
การติดตั้ง AirPlay Plugin ด้วย Cocoapods
- รันคำสั่งต่อไปนี้เพื่อเพิ่ม ByteArk Player SDK สำหรับ iOS ลงใน Cocoapods repo:
pod repo add byteark-player-sdk-ios-specs https://github.com/byteark/byteark-player-sdk-ios-specs.git
1
- แก้ไขไฟล์ Podfile โดยเพิ่มบรรทัดต่อไปนี้ที่จุดเริ่มต้นของไฟล์:
source 'https://github.com/byteark/byteark-player-sdk-ios-specs.git'
1
- เพิ่มบรรทัดต่อไปนี้ลงในไฟล์ Podfile:
pod 'ByteArkPlayerSDKAirplayPlugin', '~> BYTEARK_PLAYER_SDK_AIRPLAY_PLUGIN_VERSION'
1
Note
แทนที่ BYTEARK_PLAYER_SDK_AIRPLAY_PLUGIN_VERSION
ด้วยหมายเลขเวอร์ชันของ ByteArkPlayerSDKAirplayPlugin ที่คุณต้องการใช้
- รันคำสั่ง
pod install
ใน Terminal:
pod install
1
Note
Cocoapods จะติดตั้ง SDK โดยตรงจาก Github private repository โดยใช้ ssh key หากคุณยังไม่ได้ตั้งค่า ssh key ในบัญชี Github ของคุณ โปรดดูเอกสาร Adding a new SSH key to your GitHub account (opens new window) บนเว็บไซต์ของ Github
# Swift Package Manager
ใช้ Swift Package Manager เพื่อติดตั้ง AirPlay Plugin.
- ใน Xcode ไปที่เมนู File > Add Packages
- ใส่ URL:
https://github.com/byteark/byteark-player-sdk-ios
- เลือกเวอร์ชันของ AirPlay Plugin
- เมื่อเสร็จสิ้น Xcode จะดาวน์โหลดปลั๊กอินโดยอัตโนมัติ
# การใช้งาน
import UIKit
import ByteArkPlayerSDK
// Step 1: Import the necessary plugins for airplay integration
import ByteArkPlayerSDKAirplayPlugin
class PlayerViewController: ByteArkPlayerViewController, ByteArkPlayerAirplayPluginDelegate {
override func viewDidLoad() {
super.viewDidLoad()
do {
// Step 2: Create a ByteArkPlayerAirplayConfig using ByteArkPlayerAirplayConfigBuilder
let airplayConfig = try ByteArkPlayerAirplayConfigBuilder().build()
// Step 3: Create a ByteArkPlayerAirplayPlugin instance using the config from step 2
let airplayPlugin = ByteArkPlayerAirplayPlugin(with: airplayConfig)
// Step 4: Assign the ByteArkPlayerAirplayPluginDelegate to receive ad callback events
airplayPlugin.delegate = self
// Step 5: Set up the media item using ByteArkPlayerItemBuilder
let item = try ByteArkPlayerItemBuilder()
.media(URL(string: "https://byteark-playertzxedwv.stream-playlist.byteark.com/streams/TZyZheqEJUwC/playlist.m3u8")!)
.title("Big Buck Bunny")
.build()
// Step 6: Configure the player using ByteArkPlayerConfigBuilder, add the airplay plugin to the config
let config = try ByteArkPlayerConfigBuilder()
.item(item)
.autoplay(true)
.addPlugin(plugin: airplayPlugin, name: ByteArkPlayerAirplayPlugin.PluginName) // Adding the airplay plugin
.build()
// Step 8: Apply the configuration to the player
player.configure(with: config)
} catch {
print(error.localizedDescription)
}
}
// MARK: - ByteArkPlayerAirplayPluginDelegate Methods
// Step 9: Implement the airplay delegate method to handle when state change
func airplayDidStart() {
print("AirPlay did start.")
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
# การใช้งาน API ของ Plugin
Plugin มีตัวแปรที่สามารถเข้าถึงได้จาก instance ของ Plugin เพื่อรับข้อมูล
# Variables
Name | Description |
---|---|
var delegate: ByteArkPlayerAirplayPluginDelegate? { get, set } | Get/Set a airplay plugin delegate |
# Listen plugin's events
@objc public protocol ByteArkPlayerAirplayPluginDelegate {
///Fire after present list of possible airpaly devices
@objc optional func routePickerViewWillBeginPresentingRoutes()
///Fire when the airplay did end
@objc optional func routePickerViewDidEndPresentingRoutes()
///Fire after airplay did start
@objc optional func airplayDidStart()
///Fire after airplay did end
@objc optional func airplayDidEnd()
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
2
3
4
5
6
7
8
9
10
11
12
13
14
15