騰訊雲直播
1.打開文檔
2.SDK集成 選擇第一種即可
3.主播推流
4.觀衆拉流
四.測試:
1.打開控制檯
2.雲直播產品
3.域名管理
推流域名
4.流管理:直播推流之後就有在線流,顯示直播中
六.代碼:
1.推流:
2.拉流
一. 原理:
主播:推流(推流地址)
觀衆:拉流(播放地址)
二.登陸官網
https://cloud.tencent.com/
三.查看官方文檔
1.打開文檔
4.觀衆拉流
四.測試:
1.打開控制檯
五.主播已經把流推上去了,接下來就是拉流,拉流地址點擊上面的測試按鈕顯示拉流地址
六.代碼:
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();
}
}