> 웹 프론트엔드 > uni-app > 유니앱에서 라이브 방송 우회 푸시 구현 방법(단계 공유)

유니앱에서 라이브 방송 우회 푸시 구현 방법(단계 공유)

青灯夜游
풀어 주다: 2021-12-28 19:26:23
앞으로
4003명이 탐색했습니다.

유니앱에서 라이브 방송 우회 푸시를 어떻게 구현하나요? 다음 문서에서는 바이패스 푸시 단계를 요약하고 공유하겠습니다. 도움이 되기를 바랍니다.

유니앱에서 라이브 방송 우회 푸시 구현 방법(단계 공유)

anyRTC 오디오 및 비디오 SDK 플러그인을 통해 기본적으로 uniapp 영상 통화 구현 기본 영상통화가 구현되지 않은 경우, 글(https://blog.csdn.net/anyRTC/article/details/121352746)을 참고해주세요

Bypass push steps

1 해당 권한을 활성화해주세요

Go anyRTC Console - Usage Statistics 바이패스 스트리밍 서비스를 활성화하려면 해당 항목을 선택하세요

유니앱에서 라이브 방송 우회 푸시 구현 방법(단계 공유)

2. 모드 조정

  • SDK 기본 통신 시나리오에 필요합니다. 통신 모드를 라이브 모드로 변경

     // 设置直播模式
     rtcModule.setChannelProfile({
        "profile": 1
     }, (res) => {
         console.log(res);
     }
    로그인 후 복사

  • 역할 조정역할 앵커: 오디오 및 비디오 스트림을 게시하고 수신할 수 있습니다. 역할 - 대상: 오디오 및 비디오 스트림만 수신할 수 있습니다.

    // 1 设置为主播 2 设置为观众
    rtcModule.setClientRole({
     "role": 1
    }, (res) => {
    	console.log(res);
    })
    로그인 후 복사

3. 푸시 보기 레이아웃 및 오디오 설정을 지정합니다.

  • uniapp 플러그인에서 anyRTC 오디오 및 비디오 SDK 플러그인 예제를 다운로드합니다. 시장

  • 소개< LiveTranscoding, 코드의 TranscodingUser>utils/classes.js

    import { LiveTranscoding, TranscodingUser } from "./classes.js"
    로그인 후 복사
    utils/classes.js 中的 LiveTranscodingTranscodingUser

    // 单个主播布局
    // const anchor = new TranscodingUser(主播标识uid, {
    //				width: 280,
    //				height: 210,
    //				x: 0,
    //				y: 0
    // })
    // 多个主播布局(3列)
    let anchorList= [];
    lists.map((item,index)=> {
       anchorList.push(new TranscodingUser(主播标识uid, {
    				width: 280,
    				height: 210,
    				x: (index % 3) * 280,
    				y: Math.floor(index / 3) * 210,
    	}))
    }
    // 设置旁路推流(3列)
     rtcModule.setLiveTranscoding({
    			"transcoding": new LiveTranscoding(anchorList, {
    				width: 840,
    				height: Math.ceil(anchorList.length / 3) * 210,
    			})
    }, (ret) => {
    		console.log(ret);
    });
    로그인 후 복사

    LiveTranscoding:封装的总布局TranscodingUser:封装的主播布局

  • 设置推流的视图布局及音频设置

    频道继续新增主播并且也要合并推流时,重新调用设置即可

rtcModule.addPublishStreamUrl({
			url: 推流的cdn地址,
			transcodingEnabled: true // 转码是指在旁路推流时对音视频流做一些转码处理后再推送到其他 RTMP 服务器
		}, (res) => {
			console.log("添加旁路推流", res);
		});
로그인 후 복사

4. 推流

需要推多路流时请遍历推流

        // 状态码
		state: {
			0: "推流未开始或已结束",
			1: "正在连接 AR 推流服务器和 RTMP 服务器",
			2: "推流正在进行,成功推流后",
			3: "正在恢复推流",
			4: "推流失败"
		},
		// 错误码
		errorCode: {
			0: "推流成功",
			1: "参数无效,请检查输入参数是否正确。请确保调用 setLiveTranscoding ",
			2: "推流已加密,不能推流",
			3: "推流超时未成功,可重新推流",
			4: "推流服务器出现错误",
			5: "RTMP 服务器出现错误",
			6: "推流请求过于频繁",
			7: "单个主播的推流地址数目达到上线 10",
			8: "主播操作不属于自己的流,请检查 App 逻辑",
			9: "服务器未找到这个流",
			10: "推流地址格式有错误,请检查推流地址格式是否正确",
		}
로그인 후 복사

通过 onRtmpStreamingStateChanged 回调来判断推流状态把回调加入到 setCallBack

LiveTranscoding

: 캡슐화된 일반 레이아웃TranscodingUser : 캡슐화된 앵커 레이아웃

푸시 스트림의 보기 레이아웃 및 오디오 설정을 지정하세요

채널이 계속해서 앵커를 추가하고 푸시 스트림을 병합하면 설정을 다시 호출하세요

🎜🎜
rtcModule.removePublishStreamUrl({
			url: 推流的cdn地址,
		}, (res) => {
			console.log("取消旁路推流", res);
		});
로그인 후 복사
🎜🎜4. 푸시 스트림 🎜🎜🎜🎜여러 스트림을 푸시해야 하는 경우 푸시 스트림을 순회하세요🎜rrreee🎜🎜 onRtmpStreamingStateChanged 콜백🎜 setCallBack에 콜백을 추가하고 아래 관련 상태 코드를 전달하세요. 🎜rrreee🎜🎜🎜5 스트림 푸시를 중지하세요🎜🎜🎜. rrreee🎜추천: "🎜uniapp 튜토리얼🎜"🎜

위 내용은 유니앱에서 라이브 방송 우회 푸시 구현 방법(단계 공유)의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:juejin.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿