为了账号安全,请及时绑定邮箱和手机立即绑定

taro小程序处理LivePlayer组件重力感应横屏的问题

最近公司准备用做一个直播会议的小程序是用taro写的,之前没用过这个框架主要的语言是react还好之前有学过react语法上大差不差,于是直接上手了边看文档边写(当然啦有老师傅带)。

注意!!!这里提一下虽然是taro框架但是很多api还是小程序的只是类似wx.showModel这样的要写成Taro.showModel,api或者方法名很多和小程序原生的api和方法名是一样的。

我做的是直播组件的页面,主要用到的是taro的LivePlayer和LivePusher这两个组件。

https://img1.sycdn.imooc.com//5d678b310001deb505250624.jpg

在生命周期的render方法中写入这两个组件,然后在componentDidMount生命周期中通过createLivePlayerContext和createLivePusherContext这里个方法分别取到这两个实例然后是可以调用实例上对应的方法。

onAccelerometerChange获得监听加速度数据事件得到手机的三维偏移量,通过计算得到的Roll水平偏移角度,当偏移角度的绝对值在以内LivePlayer实例上的exitFullScreen退出全屏当绝对值大于50的时候调用LivePlayer实例上的requestFullScreen方法并传入direction旋转角度进入全屏。

triggerFullScreen() {
    Taro.onAccelerometerChange((res) => {
      const Roll = Math.atan2(-res.x, Math.sqrt(res.y * res.y + res.z * res.z)) * 57.3;
      // const Pitch = Math.atan2(res.y, res.z) * 57.3;
      if (Roll.toFixed(0) < -50) {
        this.state.LivePlayer.requestFullScreen({direction: -90})
      } else if (Roll.toFixed(0) > 50) {
        this.state.LivePlayer.requestFullScreen({direction: 90})
      } 
      else {
        this.state.LivePlayer.exitFullScreen()
      }
    })
  }

这是第一个用react写的项目!!!后续会继续记录更多taro小程序相关的开发博客!!!加油!!!


点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消