5***@qq.com
5***@qq.com
  • 发布:2020-06-17 14:24
  • 更新:2020-08-13 12:37
  • 阅读:1680

【报Bug】直播推流LivePusher在IOS端宽高设置无效

分类:uni-app

产品分类: uniapp/App

PC开发环境操作系统: Windows

PC开发环境操作系统版本号: win10 64位

HBuilderX类型: Alpha

HBuilderX版本号: 2.7.13

手机系统: iOS

手机系统版本号: iOS 13.0

手机厂商: 苹果

手机机型: 苹果X

页面类型: vue

打包方式: 云端

项目创建方式: HBuilderX

示例代码:
        const currentWebview = this.$mp.page.$getAppWebview()   
        var pusher = plus.video.createLivePusher("pusher", {  
            url:'',  
            top:'100px',//ios设置无效  
            left: '0px',  
            width: '360px',//ios设置无效  
            height: '360px',//ios设置无效  
        });  
        currentWebview.append(pusher);

操作步骤:

预期结果:

实际结果:

bug描述:

plus.video.createLivePusher的参数里在苹果手机上top、width、height都无效
也有人碰到这问题https://ask.dcloud.net.cn/question/69123?item_id=129230&rf=false

2020-06-17 14:24 负责人:无 分享
已邀请:
CLP

CLP

我在 5+项目里测试的是有效果的。pusher = plus.video.createLivePusher('pusher', {

url:'rtmp://xxx',

top:'300px',

left:'110px',

width: '100%',

height: '200px',

position: 'static'

});

var wv = plus.webview.currentWebview();

wv.append(pusher);

pusher.preview();
1 秒前

CLP

CLP

vue页面也可以,const wv = this.$mp.page.$getAppWebview()
var pusher = plus.video.createLivePusher('pusher', {
url: 'rtmp://121.42.250.244:1935/live/zheng',
top: '300px',
left: '110px',
width: '100%',
height: '200px',
position: 'static'
});
// var wv = plus.webview.currentWebview();
wv.append(pusher);
pusher.preview();

  • 5***@qq.com (作者)

    你是用IPHONE X测试的吗?

    2020-06-23 16:29

  • 5***@qq.com (作者)

    在安卓可以,在iphone x就不行

    2020-06-23 16:30

  • 5***@qq.com (作者)

    width不要用100%用300px试试

    2020-06-23 16:31

CLP

CLP

用的iPhone6p 测试的,width为具体数值也没问题

  • 5***@qq.com (作者)

    我用iphone x不行

    2020-06-23 17:51

  • 5***@qq.com (作者)

    iPhone6p也太古老了吧,基本没人用了

    2020-06-23 17:52

  • CLP

    回复 5***@qq.com:和机型没关系,你的X是什么版本的iOS系统?

    2020-06-23 18:01

  • 5***@qq.com (作者)

    回复 CLP: 13.5.1

    2020-06-24 11:23

CLP

CLP

你说的无效,是什么意思? 组件的大小固定不变的是吗?你标签里有没有写style?

  • 5***@qq.com (作者)

    就是我在页面上显示宽高都是360px的预览窗口,安卓显示正常,苹果就是不按这个宽高来,不需要标签就可以显示了

    只要js里写

    const currentWebview = this.$mp.page.$getAppWebview()

    var pusher = plus.video.createLivePusher("pusher", {

    url:'',

    top:'100px',//ios设置无效

    left: '0px',

    width: '360px',//ios设置无效

    height: '360px',//ios设置无效

    });

    currentWebview.append(pusher);

    2020-06-24 11:26

  • CLP

    回复 5***@qq.com: pusher.preview();没有打开预览吗?

    2020-06-24 12:26

  • 5***@qq.com (作者)

    回复 CLP: 有打开,但尺寸不对

    2020-06-24 12:39

  • CLP

    回复 5***@qq.com: 能录制个视频和完整的demo来吗

    2020-06-24 14:57

  • 5***@qq.com (作者)

    回复 CLP: demo代码就是我上面发的,你把上面的代码同时在安卓和iphone x上运行就能看到差别了

    2020-06-24 15:42

  • 5***@qq.com (作者)

    回复 CLP: 还有IOS经常不打印日志怎么办

    2020-06-24 15:42

  • CLP

    回复 5***@qq.com: 完整的demo,不是代码片段,是项目。

    2020-06-24 15:53

  • 5***@qq.com (作者)

    回复 CLP: 用hello-uniap示例改下就有了

    2020-06-28 11:33

  • 5***@qq.com (作者)

    就是IOS上pusher.preview();本地预览的时候设定的尺寸在APP上显示没效果

    2020-07-18 09:29

  • 5***@qq.com (作者)

    回复 CLP: http://www.html5plus.org/doc/zh_cn/video.html#plus.video.LivePusher.LivePusherStyles

    文档这里在IOS上有黑边,并不能全屏显示

    height: (String 类型 )LivePusher控件的高度

    可取值: 像素值,如"100px"; 百分比,如"10%",相对于父Webview窗口的高度。 默认值为"100%"。

    2020-07-18 10:57

  • CLP

    回复 5***@qq.com: 预览窗口的大小和控件的大小不是一回事,你设置这个试试 aspect: (String 类型 )宽高比

    可取值:3:4, 9:16。

    2020-07-20 11:35

  • 5***@qq.com (作者)

    回复 CLP: 关键是安卓预览显示的和我设置的大小一样,苹果显示的不一样。比如我要在苹果上预览显示300x300的窗口,我代码要怎么写?

    2020-07-21 12:57

  • CLP

    回复 5***@qq.com: 可以调整控件大小,但是可能会有黑边。 你如果谁便设置大小,可能画面会不全或者变形

    2020-07-21 15:14

  • 5***@qq.com (作者)

    回复 CLP: 安卓的都不会啊

    2020-07-22 12:45

  • CLP

    回复 5***@qq.com:你看看微信小程序的是什么样的

    2020-07-22 14:58

5***@qq.com

5***@qq.com (作者)


<template>  
    <view class="container">  

    </view>  
</template>  

<script>  
    export default {  
        data() {  
            return {  
            }  
        },  
        onLoad() {  

        },  
        onReady() {  
            const currentWebview = this.$mp.page.$getAppWebview()   
            var leftPos = Math.ceil((plus.screen.resolutionWidth - 360)/2);  
            var pusher = plus.video.createLivePusher("pusher", {  
                url:'',  
                top:'100px',  
                left:leftPos + 'px',  
                width: '360px',  
                height: '360px',  
            });  
            currentWebview.append(pusher);  
            setTimeout(function(){  
                pusher.preview();  
                pusher.snapshot(function(e){  
                    console.log(e)  
                }, function(e) {  
                    console.log(e)  
                });  
            },1000)  
            var view = new plus.nativeObj.View('view',  
                {top:'0px',left:'0px',height:'100%',width:'100%'},  
                [{tag:'img',id:'goMyPosition',src:'_www/static/app-plus/ucenter/setting/face-auth-bg.png',position:{top:'170px',left:leftPos + 'px',width:'360px',height:'360px'}}],  
            );  
            view.show();  
        },  
        onUnload() {  

        },  
        methods: {  

        }  
    }  
</script>  

<style>  
 page{  
/*   background-color: #FFFFFF;  
     width: 100vw;  
     height: 100vh; */  
 }  
</style>
8***@qq.com

8***@qq.com

横屏应用,出现相同问题。附iPad真机截图,iPad/iPhone 真机都一样

  • CLP

    目前iOS不支持横屏推流,横屏推流,方向还是和竖屏是一样的,和不能设置宽高不是一回事

    2020-08-13 19:56

  • 8***@qq.com

    回复 CLP: 麻烦支持下吧,现在多人直播很多都是横屏应用。安卓可以苹果不行,变成苹果需要区分在服务器转屏,延迟高,体验很差

    2020-08-14 10:39

该问题目前已经被锁定, 无法添加新回复