day16:腾讯云直播

一. 原理:

主播:推流(推流地址)
观众:拉流(播放地址)

二.登陆官网

https://cloud.tencent.com/

三.查看官方文档

1.打开文档

在这里插入图片描述

2.SDK集成 选择第一种即可

在这里插入图片描述

3.主播推流

在这里插入图片描述

4.观众拉流

四.测试:

1.打开控制台

在这里插入图片描述

2.云直播产品

在这里插入图片描述

3.域名管理

推流域名

在这里插入图片描述

4.流管理:直播推流之后就有在线流,显示直播中

在这里插入图片描述

五.主播已经把流推上去了,接下来就是拉流,拉流地址点击上面的测试按钮显示拉流地址

六.代码:

1.推流:

public class MainActivity extends AppCompatActivity implements View.OnClickListener {

    private Button bt_push;
    private Button bt_close;
    private TXCloudVideoView pusher_tx_cloud_view;
    TXLivePusher mLivePusher;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        initView();
        TXLivePushConfig mLivePushConfig  = new TXLivePushConfig();
        mLivePusher = new TXLivePusher(this);//推流对象
        // 一般情况下不需要修改 config 的默认配置
        mLivePusher.setConfig(mLivePushConfig);
        mLivePusher.startCameraPreview(pusher_tx_cloud_view);//将流预览到videoview
    }

    private void initView() {
        bt_push = (Button) findViewById(R.id.bt_push);
        bt_close = (Button) findViewById(R.id.bt_close);
        pusher_tx_cloud_view = (TXCloudVideoView) findViewById(R.id.pusher_tx_cloud_view);

        bt_push.setOnClickListener(this);
        bt_close.setOnClickListener(this);
    }

    @Override
    public void onClick(View v) {
        switch (v.getId()) {
            case R.id.bt_push:
                String rtmpURL = "rtmp://56674.livepush.myqcloud.com/live/demo?txSecret=a53915efced8fc160bab949e1210f7a9&txTime=5D3B237F"; //此处填写您的 rtmp 推流地址
                int ret = mLivePusher.startPusher(rtmpURL.trim());
                if (ret == -5) {
                    Toast.makeText(this, "License 校验失败", Toast.LENGTH_SHORT).show();
                    }
                break;
            case R.id.bt_close:
                mLivePusher.stopPusher();
                mLivePusher.stopCameraPreview(true); //如果已经启动了摄像头预览,请在结束推流时将其关闭。
                break;
        }
    }
}

2.拉流


public class Main2Activity extends AppCompatActivity implements View.OnClickListener {

    private Button bt_start;
    private TXCloudVideoView video_view;
    TXLivePlayer mLivePlayer;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main2);
        initView();
    }

    private void initView() {
        bt_start = (Button) findViewById(R.id.bt_start);
        video_view = (TXCloudVideoView) findViewById(R.id.video_view);

        bt_start.setOnClickListener(this);

//创建 player 对象
        mLivePlayer = new TXLivePlayer(this);

//关键 player 对象与界面 view
        mLivePlayer.setPlayerView(video_view);
    }

    @Override
    public void onClick(View v) {
        switch (v.getId()) {
            case R.id.bt_start:
                String flvUrl = "http://play2.liqian.ltd/live/demostream.flv";
                mLivePlayer.startPlay(flvUrl, TXLivePlayer.PLAY_TYPE_LIVE_FLV); //推荐 FLV
                break;
        }
    }
    //销毁
    @Override
    public void onDestroy() {
        super.onDestroy();
        mLivePlayer.stopPlay(true); // true 代表清除最后一帧画面
        video_view.onDestroy();
    }
}

练习手册:

题目一:

(1)创建主播推流客户端,动态获取权限
(2)创建观众拉流客户端,动态获取权限
(3)使用友盟进行多渠道打包(看老师的博客):打包过程中要签名和代码混淆
(4)将打包好的一方发送给其他人,进行直播

题目二:

使用recyclerview显示所有的好友,点击item跳转页面实现聊天(多布局)
(1)输入消息点击发送按钮能够发送消息
(2)点击照相机按钮能够拍照存储到SD卡中送给好友并展现在recyclerview中
(3)点击摄像机按钮能够录像并发送给好友并展现在recyclerview中
(4)点击网址能够发送网址给好友并展现在recyclerview中
(5)点击图库能够打开图库选择一张照片发送给好友并展现在recyclerview中
(6)点击视频聊天能够和该好友进行视频聊天
其他功能:
(1)点击消息中的网址能够打开浏览器
(2)长按网址能够将网址分享给好友
(3)长按消息中的视频能够使用友盟分享给QQ好友
(4)长按消息中的图片能够使用友盟将图片分享给QQ好友

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值