微信小程序直播

1:生成推流地址
首先登陆微信公众平台,开启实时播放和实时录制。
使用实时录制 live-pusher
<live-pusher url="{{tuiliu2}}" value="" mode="RTC" autopush bindstatechange="statechange2" style="width: 100%; height: 500rpx;" />
①:url:推流地址
我们这里的推流地址使用的是腾讯云直播,当然你也可以选用阿里云直播等。
首先进入腾讯云云直播域名管理页面。 点我进入
当你开通后,腾讯云会免费赠送一个推流域名。
点击管理-》推流配置
点击生成推流地址。
2:生成拉流地址
微信小程序使用 live-player 拉流
<live-player src="{{laliu2}}" mode="live" autoplay bindstatechange="statechange" binderror="error" style="width: 100%; height: 500rpx;" object-fit="fillCrop" />
②:src:拉流地址
登录腾讯云云直播域名管理,点击添加域名。点我进入
添加域名后,对CNAME配置
CNAME配置教程:点我查看
配置完成后,可能会有1到15分钟的延迟。
点击新添加的拉流域名《管理》
点击生成播放地址。
生成了多个播放地址,随便复制一个填入 live-player 拉流标签内的 url 即可。
保存后,即可实现直播功能
3:自主生成推流地址
上面的推流地址都是在腾讯云网站上操作生成的,但在开发中不可能一个个在网站上点击生成推流地址。
Java生成推流地址
import java.io.UnsupportedEncodingException;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
public class Zhibo {
public static void main(String[] args) {
//传入时间(第三个参数),要转成时间戳 比如2020-03-04 23:59:59 转成时间戳为1583337599
//也可以继续把时间戳转成16进制,为:1583337599
System.out.println(getSafeUrl("推流防盗链Key", " StreamName ", 1583337599L));
}
private static final char[] DIGITS_LOWER =
{'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f'};
/*
* KEY+ streamName + txTime
*/
private static String getSafeUrl(String key, String streamName, long txTime) {
String input = new StringBuilder().
append(key).
append(streamName).
append(Long.toHexString(txTime).toUpperCase()).toString();
String txSecret = null;
try {
MessageDigest messageDigest = MessageDigest.getInstance("MD5");
txSecret = byteArrayToHexString(
messageDigest.digest(input.getBytes("UTF-8")));
} catch (NoSuchAlgorithmException e) {
e.printStackTrace();
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
return txSecret == null ? "" :
new StringBuilder().
append("txSecret=").
append(txSecret).
append("&").
append("txTime=").
append(Long.toHexString(txTime).toUpperCase()).
toString();
}
private static String byteArrayToHexString(byte[] data) {
char[] out = new char[data.length << 1];
for (int i = 0, j = 0; i < data.length; i++) {
out[j++] = DIGITS_LOWER[(0xF0 & data[i]) >>> 4];
out[j++] = DIGITS_LOWER[0x0F & data[i]];
}
return new String(out);
}
}
4:使用OBS推流直播
obs下载地址:点我下载
点击设置
①:服务器选择自定义
②:输入服务器和串流密钥
注意:这里的串流密码 并不是 推流防盗链Key ,一定填写正确,否则会一直连接断开。
点击确认后,开始推流。
OBS 显示器捕获显示黑屏解决方法
点击window设置,系统,显示。
点击图形设置
点击浏览
保存后。重新打开OBS 显示器捕获功能。