你好,歡迎來到IOS教程網

 Ios教程網 >> IOS編程開發 >> IOS開發綜合 >> iOS中 視頻直播功能-流媒體的使用(詳解)

iOS中 視頻直播功能-流媒體的使用(詳解)

編輯:IOS開發綜合

最近視頻直播功能比較火,處於需求,研究了一番,根據分析決定使用流媒體實現,代碼簡單易懂,接下來看教程:

簡單介紹:

HLS 協議 : >5M會被AppStore拒絕 服務器要求低 延遲高 多平台   RTMP 協議: 電視直播 PC端使用 配合flash插件 及時性好 需要轉碼ffmpeg 延遲200ms RTSP 協議: 攝像頭功能   軟解碼: ffmpeg 硬解碼:ios8之後 VideoToolBox 框架

教程准備:

下載第三方支持:vitamio github地址:https://github.com/yixia/Vitamio-iOS.git

1.將如圖拖入工程:

\

 

每日更新關注:http://weibo.com/hanjunqiang 新浪微博

2.添加如圖依賴庫:

\

 

3.修改如圖配置信息(雙擊輸入 -ObjC):

注意:輸入的-ObjC兩邊大寫其他小寫,錯一個都會造成運行Crash

\

 

每日更新關注:http://weibo.com/hanjunqiang 新浪微博

4.代碼部分:

 

//  Created by HanJunqiang on 16/6/5.
//  Copyright © 2016年 HaRi. All rights reserved.
//

#import "ViewController.h"
//http://wow01.105.net/live/virgin1/playlist.m3u8
//http://ivi.bupt.edu.cn/hls/cctv1hd.m3u8 C1高清
//http://ivi.bupt.edu.cn/hls/cctv3hd.m3u8 C3高清
//http://ivi.bupt.edu.cn/hls/cctv5hd.m3u8 C5高清
//http://ivi.bupt.edu.cn/hls/cctv5phd.m3u8 C5+高清
//http://ivi.bupt.edu.cn/hls/cctv6hd.m3u8 C6高清
//http://ivi.bupt.edu.cn/hls/cctv8hd.m3u8 C8高清
//http://ivi.bupt.edu.cn/hls/chchd.m3u8 CHC高清電影
//http://ivi.bupt.edu.cn/hls/btv6hd.m3u8 北京體育高清
//http://ivi.bupt.edu.cn/hls/hunanhd.m3u8 湖南高清
//http://ivi.bupt.edu.cn/hls/zjhd.m3u8 浙江高清
//http://ivi.bupt.edu.cn/hls/gdhd.m3u8 廣東高清
//http://ivi.bupt.edu.cn/hls/tjhd.m3u8 天津高清

#define kMVAdress @"http://wow01.105.net/live/virgin1/playlist.m3u8"
#import "VMediaPlayer.h"
@interface ViewController ()

@property (nonatomic, strong)VMediaPlayer *vPlay;

@end

@implementation ViewController
-(void)dealloc
{
    [_vPlay unSetupPlayer];
}
- (void)viewDidLoad {
    [super viewDidLoad];
  
    _vPlay = [VMediaPlayer sharedInstance];
    [_vPlay setupPlayerWithCarrierView:self.view withDelegate:self];
    
    NSURL *vUrl = [NSURL URLWithString:kMVAdress];
    [_vPlay setDataSource:vUrl header:nil];
    [_vPlay prepareAsync];
    
}

// 當'播放器准備完成'時, 該協議方法被調用, 我們可以在此調用 [player start]
// 來開始音視頻的播放.
- (void)mediaPlayer:(VMediaPlayer *)player didPrepared:(id)arg
{
    [player start];
}
// 當'該音視頻播放完畢'時, 該協議方法被調用, 我們可以在此作一些播放器善後
// 操作, 如: 重置播放器, 准備播放下一個音視頻等
- (void)mediaPlayer:(VMediaPlayer *)player playbackComplete:(id)arg
{
    [player reset];
}
// 如果播放由於某某原因發生了錯誤, 導致無法正常播放, 該協議方法被調用, 參
// 數 arg 包含了錯誤原因.
- (void)mediaPlayer:(VMediaPlayer *)player error:(id)arg
{
    NSLog(@"NAL 1RRE &&&& VMediaPlayer Error: %@", arg);
}

- (void)didReceiveMemoryWarning {
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}

@end

最終效果:

 

\

有好的建議或者問題咨詢請關注博主微博進行咨詢:

  1. 上一頁:
  2. 下一頁:
蘋果刷機越獄教程| IOS教程問題解答| IOS技巧綜合| IOS7技巧| IOS8教程
Copyright © Ios教程網 All Rights Reserved