Skip to content
On this page

AvPlayer

1. Giới thiệu

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ườngKiểuMô tả
MERCHANT_IDNSStringĐịnh danh khách hàng
APP_IDNSStringĐịnh danh ứng dụng
sigma_debugBooleanCấu hình môi trường: staging hoặc production
USER_IDNSStringĐịnh danh người dùng được xác đinh từ hệ thống của khách hàng
SESSION_IDNSStringMã xác thực của người dùng
CONTENT_URLNSStringĐườ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

get_customer_info

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