AvPlayer
1. Giới thiệu
Thông tin tích hợp
Staging:
Certificate: https://cert-staging.sigmadrm.com/app/fairplay/{MERCHANT_ID}/{APP_ID}
License URL: https://license-staging.sigmadrm.com/license/verify/fairplay
Production:
Certificate: https://cert.sigmadrm.com/app/fairplay/{MERCHANT_ID}/{APP_ID}
License URL: https://license.sigmadrm.com/license/verify/fairplay
2. Yêu cầu
Yêu cầu
- iOS 8.0 and above
3. Tích hơp SigmaMultiDRM
Bước 1
Cấu hình tệp pod
- Thêm dòng bên dưới vao tệp Podfile
objectivec
pod 'SigmaMultiDRM', :git => 'https://github.com/sigmadrm/sigma-multi-drm-ios.git'
- Chạy lệnh bên dưới để cập nhật thư viện:
objectivec
pod install
Bước 2
Thêm thông tin khách hàng vào tệp Info.plist:
html
<key>merchant</key>
<string>MERCHANT_ID</string>
<key>appId</key>
<string>APP_ID</string>
// Optional default is false
<key>sigma_debug</key>
<string>true||false</string>
Bước 3
Cài đặt Sigma Multi DRM
objectivec
-(NSURL *)setupSigma
{
sdk = [[SigmaMultiDRM alloc] init];
[sdk setUserId:USER_ID];
[sdk setSessionId:SESSION_ID];
NSURL *URL = CONTENT_URL;
return URL;
}
Tên trường | Kiểu | Mô tả |
---|---|---|
MERCHANT_ID | NSString | Định danh khách hàng |
APP_ID | NSString | Định danh ứng dụng |
sigma_debug | Boolean | Cấu hình môi trường: staging hoặc production |
USER_ID | NSString | Định danh người dùng được xác đinh từ hệ thống của khách hàng |
SESSION_ID | NSString | Mã xác thực của người dùng |
CONTENT_URL | NSString | Đường dẫn đến nội dung mà người dùng muốn xem |
Bước 3
Lấy thông tin khách hàng từ hệ thống DRM Dashboard
Bước 4
Tạo AVURLAsset với Sigma
objectivec
NSURL *URL = [NSURL URLWithString:@"http://sdrm-test.gviet.vn/public/fairplay/master.m3u8"];
AVURLAsset *asset = [sdk assetWithUrl:URL.absoluteString];
NSArray *requestedKeys = [NSArray arrayWithObjects:kPlayableKey, nil];
[self prepareToPlayAsset:asset withKeys:requestedKeys];
Bước 5
Tích hợp vào trong Player
objectivec
self.playerItem = [AVPlayerItem playerItemWithAsset:asset];
self.playerItem.preferredForwardBufferDuration = 1.0;
[self.playerItem addObserver:self
forKeyPath:kStatusKey
options:NSKeyValueObservingOptionInitial | NSKeyValueObservingOptionNew
context:AVARLDelegateDemoViewControllerStatusObservationContext];
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(playerItemDidReachEnd:)
name:AVPlayerItemDidPlayToEndTimeNotification
object:self.playerItem];
seekToZeroBeforePlay = NO;
if (!self.player)
{
[self setPlayer:[AVPlayer playerWithPlayerItem:self.playerItem]];
[self.player addObserver:self
forKeyPath:kCurrentItemKey
options:NSKeyValueObservingOptionInitial | NSKeyValueObservingOptionNew
context:AVARLDelegateDemoViewControllerCurrentItemObservationContext];
[self.player addObserver:self
forKeyPath:kRateKey
options:NSKeyValueObservingOptionInitial | NSKeyValueObservingOptionNew
context:AVARLDelegateDemoViewControllerRateObservationContext];
}
4. Demo
Mã nguồn mẫu