实时音视频

  • 实时音视频 > 快速入门 > HarmonyOS >开发准备

    开发准备

    最近更新时间: 2024-11-27 17:43:49

    本文主要介绍开发前的准备工作,包括设备、系统及开发环境的要求等。

    设备以及系统要求

    • IDE 要求:DevEco Studio 5.0.0 Release(5.0.3.900)及以上
    • 版本要求:5.0.0 及以上

    开发环境

    导入实时音视频 SDK

    下载 qnrtckit.har 库文件 放入 demo 下的 entry/library 目录,在 entry 目录执行命令:

    $ ohpm install .\library\qnrtckit.har
    

    添加相关权限

    我们需要在工程 entry/src/main/module.json5 文件中添加相应权限的说明,需要添加如下权限:

    • 麦克风权限:
     {
      "name": "ohos.permission.MICROPHONE",
      "reason": "$string:mic_reason",
      "usedScene": {
        "abilities": ["EntryAbility"],
        "when": "inuse"
      }
    }
    
    • 相机权限:
     {
      "name": "ohos.permission.CAMERA",
      "reason": "$string:mic_reason",
      "usedScene": {
        "abilities": ["EntryAbility"],
        "when": "inuse"
      }
    }
    
    • 网络权限:
    {
      "name": "ohos.permission.INTERNET",
      "reason": "$string:network",
      "usedScene": {
        "abilities": [
          "EntryAbility"
        ],
        "when": "inuse"
      }
    }
    

    并在代码中请求获取相应权限:

    
    const permissions: Array<Permissions> =
      ['ohos.permission.MICROPHONE', 'ohos.permission.CAMERA',
        'ohos.permission.INTERNET'];
    
    function reqPermissionsFromUser(permissions: Array<Permissions>, context: common.UIAbilityContext): void {
      let atManager: abilityAccessCtrl.AtManager = abilityAccessCtrl.createAtManager();
      // requestPermissionsFromUser会判断权限的授权状态来决定是否唤起弹窗
      atManager.requestPermissionsFromUser(context, permissions).then((data) => {
        let grantStatus: Array<number> = data.authResults;
        let length: number = grantStatus.length;
        for (let i = 0; i < length; i++) {
          if (grantStatus[i] === 0) {
            // 用户授权,可以继续访问目标操作
          } else {
            // 用户拒绝授权,提示用户必须授权才能访问当前页面的功能,并引导用户到系统设置中打开相应的权限
            return;
          }
        }
        // 授权成功
      }).catch((err: BusinessError) => {
        console.error(`Failed to request permissions from user. Code is ${err.code}, message is ${err.message}`);
      })
    }
    
    以上内容是否对您有帮助?
  • Qvm free helper
    Close