csdn-天真的代码之直播(淡入浅出)

一、简介

最近打算正在做我们公司的项目重构,重构过程中走到了直播的这一块,查阅了很多资料都没有找到合适的很全面的直播流程),像是我这样的技术小猿,在看着老项目的代码的确是一件比较苦恼的事情,打算自己总结一篇真正的直播流程,一般做直播会有两种

第一种(大型互联网公司):

     后端和前端都是自己公司进行搭建的

第二种 (微小型,小型公司)

    后端前端汇集成一些第三方的直播sdk如现在比较流行的 阿里、腾旭、网易 等等,他们都有自己的直播云平台

那么我们今天就是用阿里的直播sdk来完成一次直播的流程

二、流程(搬砖)

  1.简要

  •  第一没有阿里云账号的赶快去注册一个,以后购买服务器,域名备案信息在这里面都可以,https://help.aliyun.com/
  • 一些直播的域名地址等配置就不多说 分享一篇别人的文章吧给大家 ->https://www.jianshu.com/p/fe2e9c349ca5\
  • 剩下的就是我们做移动端的集成步骤:

2. android端集成流程(https://help.aliyun.com/document_detail/94843.html?spm=a2c4g.11174283.6.855.355e454eNnwQV0

  • 下载sdk
  • 下完sdk之后呢,导入sdk相关的so库和jar
  • 打开这个文件夹把这里面的jar导入
  • 这是我导入之后
  • 在model的bulid中defaultConfig下面配置ndk 
        ndk {
                abiFilters "armeabi","armeabi-v7a", "x86", "mips", "mips64", "x86_64"
            }

    同级别下面配置

        repositories {
            flatDir { dirs 'libs' }
        }
    
        sourceSets {
            main {
                //jni库的调用会到资源文件夹下lib里面找so文件
                jniLibs.srcDirs = ['lib']
                androidTest.setRoot('tests')
            }
        }

    这样子简单的配置就好了

三、使用 

  • 在appliaction 中初始化我们的sdk
AliVcMediaPlayer.init(applicationContext)//
  • 连个重要的对象(我只里面设置了一些监听不设置的话也可以)
 mAlivcLivePushConfig = new AlivcLivePushConfig(); //配置
 mAlivcLivePusher = new AlivcLivePusher();          //直播入口
 mSurfaceView.getHolder().addCallback(mCallback);
        mSurfaceView.setOnTouchListener(mOnTouchListener);
        //对焦,缩放
        mDetector = new GestureDetector(mSurfaceView.getContext(), mGestureDetector);
        mScaleDetector = new ScaleGestureDetector(mSurfaceView.getContext(), mScaleGestureDetector);
        mAlivcLivePushConfig.setResolution(AlivcResolutionEnum.RESOLUTION_540P);
        mAlivcLivePushConfig.setQualityMode(AlivcQualityModeEnum.QM_RESOLUTION_FIRST);
        mAlivcLivePushConfig.setPreviewOrientation(AlivcPreviewOrientationEnum.ORIENTATION_PORTRAIT);//竖屏推流
        mAlivcLivePushConfig.setFps(AlivcFpsEnum.FPS_30); //帧率25
        mAlivcLivePushConfig.setAudioSamepleRate(AlivcAudioSampleRateEnum.AUDIO_SAMPLE_RATE_32000);

        mAlivcLivePushConfig.setAudioProfile(AlivcAudioAACProfileEnum.AAC_LC);
        mAlivcLivePushConfig.setAudioChannels(AlivcAudioChannelEnum.AUDIO_CHANNEL_ONE);
        mAlivcLivePushConfig.setCameraType(AlivcLivePushCameraTypeEnum.CAMERA_TYPE_BACK);
        mAlivcLivePushConfig.setAudioOnly(false);
        mAlivcLivePushConfig.setAutoFocus(true);
        mAlivcLivePushConfig.setBeautyOn(false);
        mAlivcLivePusher.init(this, mAlivcLivePushConfig);
        mAlivcLivePusher.setLivePushNetworkListener(mPushNetworkListener);
        mAlivcLivePusher.setLivePushErrorListener(mPushErrorListener);
  • 需要一个SurfaceView
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <SurfaceView
        android:id="@+id/live_surface"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_centerHorizontal="true"/>

    <Button
        android:id="@+id/btn_start"
        android:layout_alignParentBottom="true"
        android:layout_centerHorizontal="true"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="开始"/>

</RelativeLayout>
  • 推流
     mAlivcLivePusher.startPushAysnc("直播流,一般服务端会给");

    这就是一个简单地推流,对于一些其他设置可以参考阿里云的开发api进行设置,写的不是很好,如果还有人不是很明白,可以打开demo看一些使用方式,希望大家多多支持


 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值