View a markdown version of this page

Memulai dengan IVS iOS Player SDK - Amazon IVS

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Memulai dengan IVS iOS Player SDK

Dokumen ini membawa Anda melalui langkah-langkah yang terlibat dalam memulai dengan Amazon IVS iOS player SDK.

Kami menyarankan Anda mengintegrasikan SDK pemain melalui Swift Package Manager. (Sebagai alternatif, Anda dapat menambahkan kerangka kerja ke proyek Anda secara manual.)

Direkomendasikan: Integrasikan Player SDK (Swift Package Manager)

  1. Unduh Package.swift file dari https://player.live-video.net/1.55.0/Package.swift.

  2. Dalam proyek Anda, buat direktori baru bernama AmazonivsPlayer dan tambahkan ke kontrol versi.

  3. Letakkan Package.swift file yang diunduh di direktori baru.

  4. Di Xcode, buka File> Add Package Dependencies dan pilih Add Local...

  5. Arahkan ke dan pilih direktori AmazonivsPlayer yang Anda buat, dan pilih Tambahkan Paket.

  6. Saat diminta untuk Mem ilih Produk Paket untuk AmazonivsPlayer, pilih AmazonivsPlayer sebagai Produk Paket Anda dengan menetapkan target aplikasi Anda di bagian Tambahkan ke Target.

  7. Pilih Tambah Paket.

Pendekatan Alternatif: Instal Kerangka Secara Manual

  1. Unduh versi terbaru dari https://player.live-video.net/1.55.0/AmazonIVSPlayer.xcframework.zip.

  2. Ekstrak konten arsip. AmazonIVSPlayer.xcframework berisi SDK untuk perangkat dan simulator.

  3. Sematkan AmazonIVSPlayer.xcframework dengan menyeretnya ke bagian Framework, Libraries, dan Embedded Content pada tab Umum untuk target aplikasi Anda:

    Bagian Kerangka Kerja, Pustaka, dan Konten Tersemat pada tab Umum untuk target aplikasi Anda.

Buat Pemain

Objek pemain adalahIVSPlayer. Ini dapat diinisialisasi seperti yang ditunjukkan di bawah ini:

Swift
import AmazonIVSPlayer let player = IVSPlayer()
Objective-C
#import <AmazonIVSPlayer/AmazonIVSPlayer.h> IVSPlayer *player = [[IVSPlayer alloc] init];

Siapkan Delegasi

Panggilan balik delegasi memberikan informasi tentang status pemutaran, peristiwa, dan kesalahan. Semua panggilan balik dipanggil pada antrian utama.

Swift
// Self must conform to IVSPlayer.Delegate player.delegate = self
Objective-C
// Self must conform to IVSPlayer.Delegate player.delegate = self

Tampilan Video

Pemutar menampilkan video dalam lapisan khusus,IVSPlayerLayer. SDK juga menyediakanIVSPlayerView, UIView subkelas yang didukung oleh lapisan ini. Gunakan mana saja yang lebih nyaman untuk UI aplikasi Anda.

Dalam kedua kasus, tampilkan video dari instance pemutar dengan menggunakan player properti.

Swift
// When using IVSPlayerView: playerView.player = player // When using IVSPlayerLayer: playerLayer.player = player
Objective-C
// When using IVSPlayerView: playerView.player = player; // When using IVSPlayerLayer: playerLayer.player = player;

Muat Streaming

Pemain memuat aliran secara asinkron. Keadaannya menunjukkan kapan siap untuk dimainkan.

Swift
player.load(url)
Objective-C
[player load:url];

Putar Streaming

Saat pemutar siap, gunakan play untuk memulai pemutaran. Gunakan antarmuka delegasi atau pengamatan nilai kunci pada state properti untuk mengamati perubahan status. Berikut adalah contoh pendekatan berbasis delegasi:

Swift
func player(_ player: IVSPlayer, didChangeState state: IVSPlayer.State) { if state == .ready { player.play() } }
Objective-C
- (void)player:(IVSPlayer *)player didChangeState:(IVSPlayerState)state { if (state == IVSPlayerStateReady) { [player play]; } }

Jeda Pada Latar Belakang Aplikasi

Pemain tidak mendukung pemutaran saat aplikasi berada di latar belakang, tetapi tidak perlu sepenuhnya dirobohkan. Jeda sudah cukup; lihat contoh di bawah ini.

Swift
override func viewDidLoad() { super.viewDidLoad() NotificationCenter.default.addObserver(self, selector: #selector(applicationDidEnterBackground(_:)), name: UIApplication.didEnterBackgroundNotification, object: nil) } @objc func applicationDidEnterBackground(_ notification: NSNotification) { playerView?.player?.pause() }
Objective-C
- (void)viewDidLoad { [super viewDidLoad]; NSNotificationCenter *defaultCenter = NSNotificationCenter.defaultCenter; [defaultCenter addObserver:self selector:@selector(applicationDidEnterBackground:) name:UIApplicationDidEnterBackgroundNotification object:nil]; } - (void)applicationDidEnterBackground:(NSNotification *)notification { [playerView.player pause]; }

Keamanan Benang

API pemain tidak aman utas. Anda harus membuat dan menggunakan instance pemain dari thread utama aplikasi.

Ukuran SDK

SDK pemutar Amazon IVS dirancang agar seringan mungkin. Untuk informasi terkini tentang ukuran SDK, lihat Catatan Rilis.

Penting: Saat mengevaluasi dampak ukuran, ukuran IPA yang dihasilkan oleh Xcode tidak mewakili ukuran aplikasi yang diunduh ke perangkat pengguna. App Store melakukan pengoptimalan untuk mengurangi ukuran aplikasi Anda.

Menyatukan Semuanya

Cuplikan kontroler tampilan sederhana berikut memuat dan memutar URL dalam tampilan pemain. Perhatikan bahwa playerView properti diinisialisasi dari XIB/Storyboard, dan kelasnya diatur ke IVSPlayerView dalam Interface Builder menggunakan bagian Kelas Kustom dari Identity Inspector.

Swift
import AmazonIVSPlayer class MyViewController: UIViewController { ... // Connected in Interface Builder @IBOutlet var playerView: IVSPlayerView! override func viewDidLoad() { super.viewDidLoad() NotificationCenter.default.addObserver(self, selector: #selector(applicationDidEnterBackground(_:)), name: UIApplication.didEnterBackgroundNotification, object: nil) } @objc func applicationDidEnterBackground(_ notification: NSNotification) { playerView?.player?.pause() } ... // Assumes this view controller is already loaded. // For example, this could be called by a button tap. func playVideo(url videoURL: URL) { let player = IVSPlayer() player.delegate = self playerView.player = player player.load(videoURL) } } extension MyViewController: IVSPlayer.Delegate { func player(_ player: IVSPlayer, didChangeState state: IVSPlayer.State) { if state == .ready { player.play() } } }
Objective-C
// MyViewController.h @class IVSPlayerView; @interface MyViewController: UIViewController ... // Connected in Interface Builder @property (nonatomic) IBOutlet IVSPlayerView *playerView; ... @end // MyViewController.m #import <AmazonIVSPlayer/AmazonIVSPlayer.h> @implementation MyViewController <IVSPlayerDelegate> ... - (void)viewDidLoad { [super viewDidLoad]; NSNotificationCenter *defaultCenter = NSNotificationCenter.defaultCenter; [defaultCenter addObserver:self selector:@selector(applicationDidEnterBackground:) name:UIApplicationDidEnterBackgroundNotification object:nil]; } - (void)applicationDidEnterBackground:(NSNotification *)notification { [playerView.player pause]; } // Assumes this view controller is already loaded. // For example, this could be called by a button tap. - (void)playVideoWithURL:(NSURL *)videoURL { IVSPlayer *player = [[IVSPlayer alloc] init]; player.delegate = self; playerView.player = player; [player load:videoURL]; } - (void)player:(IVSPlayer *)player didChangeState:(IVSPlayerState)state { if (state == IVSPlayerStateReady) { [player play]; } } ... @end