uni-app ios端nvue直播推流出现"rtmp url invalidate"错误提示,安卓端正常

uni-app ios端nvue直播推流出现"rtmp url invalidate"错误提示,安卓端正常

开发环境 版本号 项目创建方式
Windows 10家庭中文版 HBuilderX
产品分类:uniapp/App

PC开发环境操作系统:Windows

HBuilderX类型:正式

HBuilderX版本号:3.3.13

手机系统:iOS

手机系统版本号:iOS 15

手机厂商:苹果

手机机型:iphone XR

页面类型:nvue

vue版本:vue2

打包方式:云端

项目创建方式:HBuilderX

示例代码:

开始推流 暂停推流 resume 停止推流 快照 开启摄像头预览 关闭摄像头预览 切换摄像头 import md5 from ‘@/js_sdk/md5.js’; export default { data() { return { url:’’, context:’’ } }, onReady() { let that = this; setTimeout(() => { var secretdate= ‘xxxxxxx’; let date = Date.parse(new Date())/1000 + 21600; that.url = 'http://livepush.nync.com/live/123456789.flv?txSecret=’+md5(secretdate+this.live_id+date.toString(16).toUpperCase())+’&txTime=’+date.toString(16).toUpperCase(); that.start(0); }, 1000) }, methods: { statechange(e) {}, netstatus(e) {}, error(e) {}, start: function() { this.context.start({ success: (a) => { console.log(“livePusher.start:” + JSON.stringify(a)); }, fail: a =>{ console.log(“开启直播失败:” + JSON.stringify(a)); } }); }, close: function() { this.context.close({ success: (a) => { console.log(“livePusher.close:” + JSON.stringify(a)); } }); }, snapshot: function() { this.context.snapshot({ success: (e) => { console.log(JSON.stringify(e)); } }); }, resume: function() { this.context.resume({ success: (a) => { console.log(“livePusher.resume:” + JSON.stringify(a)); } }); }, pause: function() { this.context.pause({ success: (a) => { console.log(“livePusher.pause:” + JSON.stringify(a)); } }); }, stop: function() { this.context.stop({ success: (a) => { console.log(JSON.stringify(a)); } }); }, switchCamera: function() { this.context.switchCamera({ success: (a) => { console.log(“livePusher.switchCamera:” + JSON.stringify(a)); } }); }, startPreview: function() { this.context.startPreview({ success: (a) => { console.log(“livePusher.startPreview:” + JSON.stringify(a)); } }); }, stopPreview: function() { this.context.stopPreview({ success: (a) => { console.log(“livePusher.stopPreview:” + JSON.stringify(a)); } }); } }



操作步骤:

根据上面的的代码运行即可复现



预期结果:

希望和安卓一样可以直接进行推流服务



实际结果:

在ios端使用live-pusher无法进行推流



bug描述:

使用live-pusher在ios无法进行推流,this.context.start中返回的fail为{“message”:“rtmp url invalidate”,“errMsg”:“start:fail”},同样的代码在安卓没有问题

4 回复

没有复现问题,检查 url 是否正常


已找到问题,可以结帖

回复 刘超群: 遇到同样,是什么问题

在 uni-app 中使用 nvue 进行直播推流时,如果在 iOS 端出现 "rtmp url invalidate" 错误提示,而 Android 端正常,可能是由于以下原因导致的:

1. RTMP URL 格式问题

  • iOS 对 RTMP URL 的格式要求可能比 Android 更严格。确保 RTMP URL 的格式正确,例如:
    rtmp://your-server-ip/your-app/your-stream-key
  • 检查 URL 中是否包含特殊字符或不支持的字符,确保 URL 是合法的。

2. RTMP 协议支持

  • iOS 可能对某些 RTMP 协议支持不完全,尤其是在较新的 iOS 版本中。可以尝试使用其他协议(如 SRT 或 WebRTC)进行推流,或者检查推流 SDK 是否支持 iOS 的最新版本。

3. 推流 SDK 兼容性

  • 确保你使用的推流 SDK 在 iOS 端是兼容的。某些 SDK 可能在 Android 上工作正常,但在 iOS 上存在问题。检查 SDK 的文档,确保它支持 iOS 平台。

4. 网络权限

  • iOS 对网络权限的要求比较严格,确保在 Info.plist 中正确配置了网络权限。例如:
    <key>NSAppTransportSecurity</key>
    <dict>
        <key>NSAllowsArbitraryLoads</key>
        <true/>
    </dict>
回到顶部
AI 助手
你好,我是IT营的 AI 助手
您可以尝试点击下方的快捷入口开启体验!