快3网上购买

iOS开发日记--运用PeergineSDk 处理P2P视频直播

电脑杂谈  发布时间:2019-10-08 13:03:12  来源:网络整理

ios支持p2p的播放器_支持p2p的下载器_能播放p2p的播放器

最近在做P2P的项目,关于视频监控直播方面的,用到了Peergine的P2P视频直播模块,下面小结一下爬坑经历。

关于SDK的介绍,在官方有具体介绍,你可以现在Peergine的SDK来看,里边包含了文档和demo(如下图)

快3网上购买SDK安装包中附带了两个小demo,一个是多源音视频播放端demo,一个是单源音视频播放端demo。为了更好的接入到项目中,我把demo程序更改了一下。

快3网上购买1.将安装包中的Include和Lib这两个文件夹添加到项目中

能播放p2p的播放器_ios支持p2p的播放器_支持p2p的下载器

2.添加系统库文件

libiconv.tbd: 系统自带多语言字符集库

快3网上购买libz。1。2。5。tbd:系统自带zip压缩库

libresolv。tbd:系统自带的域名解析库

依赖框架库(如下图)

能播放p2p的播放器_支持p2p的下载器_ios支持p2p的播放器

3.将Appdelegate.m修改为Appdelegate.mm;

4.在BuildSetting中设置Enable BitCode为NO;

VideoVideController。h

#import <UIKit/UIKit.h>
#import "pgLibLiveMultiRender.h"
@class VideoViewController;
@interface DemoLiveEvent : pgLibLiveMultiRenderEvent
{
    VideoViewController *m_App;
}
-(id)init:(VideoViewController *)App;
-(void)OnEvent:(NSString *)sAction data:(NSString *)sData capid:(NSString *)sCapID;
@end
@interface VideoViewController : UIViewController
{
    DemoLiveEvent* m_LiveEvent;
    pgLibLiveMultiRender* m_Live;
    UIView* m_pView;
    NSString* m_sCapID;
    NSString* m_sReplysPeer;
    NSString* m_sReplysFile;
    BOOL m_bNeedCallback;
    BOOL m_bIsReplying;
    BOOL    m_bTransfering ;
    int m_iMethID;
    NSString* filePath;
}
static void MyAudioSessionInterruptionListener(void * inClientData, UInt32 inInterruptionState);
-(void)OnEventProc:(NSString*)sAction data:(NSString*)sData capID:(NSString*)sCapID;
@end

VideoViewController.m

#import "VideoViewController.h"
#import <AudioToolbox/AudioToolbox.h>
#import <AVFoundation/AVAudioSession.h>
#import "pgLibLiveMultiView.h"
@implementation DemoLiveEvent
-(id)init:(VideoViewController*) App
{
    if (self = [super init]) {
        m_App = App;
    }
    return self;
}
-(void)OnEvent:(NSString *)sAction data:(NSString *)sData capid:(NSString *)sCapID
{
    [m_App OnEventProc:sAction data:sData capID:sCapID];
}
@end
@interface VideoViewController ()
@end

能播放p2p的播放器_支持p2p的下载器_ios支持p2p的播放器

初始化函数

 (instancetype)init
{
    self = [super init];
    if (self) {
        
        m_LiveEvent = [[DemoLiveEvent alloc]init:self];
        m_Live = [[pgLibLiveMultiRender alloc]init:m_LiveEvent];
        m_pView = 0;
        m_sCapID = @"";
    }
    return self;
}

创建视频view。注意 这里的m_pView不能够用xib创建,否则会显示不出图像。

  //Crerte live view。
    int iErr = [m_Live Initialize:@"ios_test" pass:@"" svrAddr:@"connect.peergine.com:7781" relayAddr:@"" p2pTryTime:1 initParam:@""];
    if (iErr != 0) {
        NSLog(@"pgLibLiveMulti:initialize failed ! iErr = %d",iErr);
        NSString *sInfo = [NSString stringWithFormat:@"Initialize failed! iErr=%d",iErr];
        [self showAlert:sInfo];
    }
    m_pView = [pgLibLiveMultiView Get:@"View0"];
    m_pView.frame = CGRectMake(0, 120, SCREEN_WIDTH, 350);
    [self.view addSubview:m_pView];
    
    NSError *error = nil;
    AVAudioSession *audioSession = [AVAudioSession sharedInstance];
    [audioSession setCategory:AVAudioSessionCategoryPlayAndRecord withOptions:AVAudioSessionCategoryOptionDefaultToSpeaker error:&error];
    [audioSession overrideOutputAudioPort:AVAudioSessionPortOverrideSpeaker error:&error];
    [audioSession setActive:YES error:&error];
    //定义记录文件全名以及路径的字符串filePath
    NSString *documentDirectory = [self GetDocDir];
    filePath = [documentDirectory stringByAppendingPathComponent:@"pgtest"];
    
    
    //查找文件 如果不存在,就创建一个文件
    NSFileManager *fileManager = [NSFileManager defaultManager];
    if (![fileManager fileExistsAtPath:filePath]) {
        NSLog(@"File no exsit, create new one");
        [fileManager createFileAtPath:filePath contents:nil attributes:nil];
    }
    

开始连接与取消连接

//开始连接  video 和audio
-(void)startConnect{
   m_sCapID = M_SCAPID;
    [m_Live Connect:m_sCapID];
    [m_Live VideoStart:m_sCapID videoID:0 param:@"" nodeView:m_pView];
    [m_Live AudioStart:m_sCapID audioID:0 param:@""];
    
}
//取消连接
-(void)stopConnect{
    [m_Live AudioStop:m_sCapID audioID:0];
    [m_Live VideoStop:m_sCapID videoID:0];
    [m_Live Disconnect:m_sCapID];
}

支持p2p的下载器_能播放p2p的播放器_ios支持p2p的播放器

清理P2P直播实例

如果音频视频终于开启ios支持p2p的播放器,必须先关掉ios支持p2p的播放器,然后在执行清理示例操作。

   if (m_pView != nil) {
        [pgLibLiveMultiView Release:m_pView];
        m_pView = nil;
    }
    [m_Live Clean];

快3网上购买调用其它业务用途函数,根据实际调用的详细API

MessageSemd: 

最后附demo示例


本文来自电脑杂谈,转载请注明本文网址:
http://www.kadakong.com/a/bofangqi/article-125582-1.html

    相关阅读
    发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

    广发彩票 快3官网投注平台 恒彩彩票官网 青海福彩网 辽宁快乐12 万发彩票注册 快三平台 恒彩彩票官网 快3投注 恒彩彩票计划