HarmonyOS webrtc同屏功能的解决方案

HarmonyOS项目中webrtc同屏功能的解决方案,如何嵌入到项目中?

HarmonyOS
2025-01-09 18:09:54
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
shlp

示例参考如下:

import webView from '@ohos.web.webview';
import business_error from '@ohos.base' ;
import abilityAccessCtrl from '@ohos.abilityAccessCtrl';
import { router } from '@kit.ArkUI';
const AtManager = abilityAccessCtrl.createAtManager();
@Entry
@Component struct WebComponent {
  controller: webView.WebviewController = new webView.WebviewController();
  aboutToAppear() {
    AtManager.requestPermissionsFromUser(getContext(this), ['ohos.permission.MICROPHONE']) .then(
      data => {
        let result: Array<number> = data.authResults;
        let hasPermissions1 = true;
        result.forEach(item => { if (item === -1) { hasPermissions1 = false; } })
        if (hasPermissions1) {
          console.info("hasPermissions1") } else {
          console.info("not hasPermissions1") }
      }).catch((error:business_error.BusinessError) => {}); }
  build() {
    Column() {
      Row() {
        Button('refresh')
          .onClick(() => { this.controller.refresh() })
      }
      Row() {
        Button('跳转')
          .onClick(() => {
            router.pushUrl({
              url: 'pages/Index',
              params: ''
            })
          })
      }
      Row() {
        Web({ src: $rawfile('demo.html'), controller: this.controller })
          .domStorageAccess(true)
          .databaseAccess(true)
          .imageAccess(true)
          .onlineImageAccess(true)
          .javaScriptAccess(true)
          .onScreenCaptureRequest((event) => {
            if (!event) { return; }
            console.log("on onScreenCaptureRequest Origin:" + event.handler.getOrigin());
            AlertDialog.show({ title: 'title', message: '请求权限' + event.handler.getOrigin(), confirm: { value: 'ok', action: () => { event.handler.grant({ captureMode: WebCaptureMode.HOME_SCREEN }); } }, cancel: () => { event.handler.deny(); } })
          })
      }
    }
  }
}

<!DOCTYPE html>
  <html lang="en">
  <head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
  <meta http-equiv="X-UA-Compatible" content="ie=edge">
  <title>Document</title>
  <style>
#video {
  width: 200px;
  height: 400px;
  border: 2px solid red;
}
</style>
  </head>
  <body>
  <script>
  function share() {
    navigator.mediaDevices.getDisplayMedia({video: true}).then(stream => {
      var video = document.getElementById('video');
      video.srcObject = stream;
      console.log(stream, video);
      video.play();
    }).catch(res => {
      document.getElementById('res').innerText = res;
    })
  }

var script = document.createElement('script');
script.src = 'https://cdn.bootcdn.net/ajax/libs/vConsole/3.15.1/vconsole.min.js';
script.onload = function(){
  window.vconsole = new VConsole();
};
document.body.appendChild(script);
</script>
  <button onclick="share()">投屏</button>
  <video id="video"></video>
  <span id="res"></span>
  </body>
  </html>
分享
微博
QQ
微信
回复
2025-01-09 20:12:32
相关问题
HarmonyOS 通知推送解决方案
625浏览 • 1回复 待解决
HarmonyOS代码封装解决方案
1171浏览 • 1回复 待解决
HarmonyOS 滚动事件相关解决方案
284浏览 • 1回复 待解决
确认网络状况解决方案
1069浏览 • 1回复 待解决
高级图表实现解决方案
1113浏览 • 1回复 待解决
HarmonyOS 音频播放组件解决方案
463浏览 • 1回复 待解决
HarmonyOS事件通信能力解决方案
1421浏览 • 1回复 待解决
抓包应用,求解决方案
2403浏览 • 1回复 待解决
HarmonyOS有访问相册有解决方案
776浏览 • 1回复 待解决
HarmonyOS C++模块引用解决方案
942浏览 • 1回复 待解决
HarmonyOS 部分文本高亮解决方案
624浏览 • 1回复 待解决
包大小优化,有没有好解决方案
620浏览 • 2回复 待解决
lazyforeach替换数据源解决方案
1265浏览 • 1回复 待解决
HarmonyOS 音视频处理相关解决方案
993浏览 • 1回复 待解决
HarmonyOS 卡片列表网络图片解决方案
548浏览 • 1回复 待解决
图像处理库是否有替代解决方案
791浏览 • 0回复 待解决
支持图文混排组件及解决方案
649浏览 • 1回复 待解决
开发疑难问题如下,求解决方案
694浏览 • 1回复 待解决
图片存储解决方案谁知道啊?
2830浏览 • 1回复 待解决
应用包体积大小优化解决方案
952浏览 • 1回复 待解决
webview中跨域问题解决方案
3342浏览 • 1回复 待解决