直播Vitamio的簡單使用

7D7C2E0E-FD07-40DB-A986-C7D69007D94B.png

在ViewController.m 文件里面寫

import "Vitamio.h"

@interface ViewController ()<VMediaPlayerDelegate>
{
VMediaPlayer *mMPayer;
}
@property (nonatomic, copy) NSURL *videoURL;

@end

@implementation ViewController

  • (void)viewDidLoad {
    [super viewDidLoad];
    NSString *videoUrl = @"XXX.m3u8";

    UIView * view = [[UIView alloc]initWithFrame:CGRectMake(10, 100, self.view.frame.size.width - 20, 200)];
    view.backgroundColor = [UIColor yellowColor];
    [self.view addSubview:view];

mMPayer = [VMediaPlayer sharedInstance];
[mMPayer setupPlayerWithCarrierView:view withDelegate:self];
 
self.videoURL = [NSURL URLWithString:videoUrl];
[mMPayer setDataSource:self.videoURL header:nil];
[mMPayer prepareAsync];

// 當(dāng)不再使用播放器時, 可以調(diào)用 -unSetupPlayer 實例方法來取消注冊播放器.
// [mMPayer unSetupPlayer];

}

// 當(dāng)'播放器準備完成'時, 該協(xié)議方法被調(diào)用, 我們可以在此調(diào)用 [player start]
// 來開始音視頻的播放.

  • (void)mediaPlayer:(VMediaPlayer *)player didPrepared:(id)arg
    {
    [player start];
    }
    // 當(dāng)'該音視頻播放完畢'時, 該協(xié)議方法被調(diào)用, 我們可以在此作一些播放器善后
    // 操作, 如: 重置播放器, 準備播放下一個音視頻等
  • (void)mediaPlayer:(VMediaPlayer *)player playbackComplete:(id)arg
    {
    [player reset];
    }
    // 如果播放由于某某原因發(fā)生了錯誤, 導(dǎo)致無法正常播放, 該協(xié)議方法被調(diào)用, 參
    // 數(shù) arg 包含了錯誤原因.
  • (void)mediaPlayer:(VMediaPlayer *)player error:(id)arg
    {
    NSLog(@"NAL 1RRE &&&& VMediaPlayer Error: %@", arg);
    }

創(chuàng)建單獨類 BPG_Vitamio 繼承UIView
.h文件

import <UIKit/UIKit.h>

import "Vitamio.h"

@interface BPG_Vitamio : UIView<VMediaPlayerDelegate>

-(void)initWithFrame:(CGRect)frame AndDetegate:(id<VMediaPlayerDelegate>)detegate AndVideoUrl:(NSString *)url;
-(void)UnSetupPlayer;

@end

在.m文件寫

import "BPG_Vitamio.h"

@interface BPG_Vitamio ()
{
VMediaPlayer *mMPayer;
}

@end

@implementation BPG_Vitamio

-(void)initWithFrame:(CGRect)frame AndDetegate:(id<VMediaPlayerDelegate>)detegate AndVideoUrl:(NSString *)url
{
mMPayer = [VMediaPlayer sharedInstance];
[mMPayer setupPlayerWithCarrierView:self withDelegate:detegate];
[mMPayer setDataSource:[NSURL URLWithString:url] header:nil];
[mMPayer prepareAsync];

}

// 當(dāng)不再使用播放器時, 可以調(diào)用 -unSetupPlayer 實例方法來取消注冊播放器.
-(void)UnSetupPlayer
{
[mMPayer unSetupPlayer];
}

// 當(dāng)'播放器準備完成'時, 該協(xié)議方法被調(diào)用, 我們可以在此調(diào)用 [player start]
// 來開始音視頻的播放.

  • (void)mediaPlayer:(VMediaPlayer *)player didPrepared:(id)arg
    {
    [player start];
    }
    // 當(dāng)'該音視頻播放完畢'時, 該協(xié)議方法被調(diào)用, 我們可以在此作一些播放器善后
    // 操作, 如: 重置播放器, 準備播放下一個音視頻等
  • (void)mediaPlayer:(VMediaPlayer *)player playbackComplete:(id)arg
    {
    [player reset];
    }
    // 如果播放由于某某原因發(fā)生了錯誤, 導(dǎo)致無法正常播放, 該協(xié)議方法被調(diào)用, 參
    // 數(shù) arg 包含了錯誤原因.
  • (void)mediaPlayer:(VMediaPlayer *)player error:(id)arg
    {
    NSLog(@"NAL 1RRE &&&& VMediaPlayer Error: %@", arg);
    }

@end

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容