HarmonyOS 鸿蒙Next:设置本地媒体会话时,当AVSessionType为voice_call,本地媒体会话未展示设置的媒体会话信息

HarmonyOS 鸿蒙Next:设置本地媒体会话时,当AVSessionType为voice_call,本地媒体会话未展示设置的媒体会话信息

  1. 当设置本地媒体会话,AVSessionType为voice_call时,本地媒体会话未展示设置的媒体会话信息。但能够配置合音频播放后台长时任务在后台运行

  2. 当设置本地媒体会话,AVSessionType为video时,本地媒体会话展示设置的媒体会话信息。功能正常和文档说明一致。

需求:目前测试出的功能满足我们的需求。但因为和官方文档叙述的不太相同。想了解,是否在AVSessionType为voice_call时。本地媒体会话设置信息就是不显示的?

文档地址:

https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/local-avsession-overview-V5

async createSession(context: Context) {
  if (this.session) {
    Logger.info(TAG, "session already created");
    return;
  }
  let type: AVSessionManager.AVSessionType = 'voice_call';
  this.session = await AVSessionManager.createAVSession(context, 'SESSION_NAME', type);
  // 把媒体音源信息设置给AVSession
  let metadata: AVSessionManager.AVMetadata = {
    assetId: '0',
    title: 'TITLE',
    mediaImage: 'IMAGE',
    artist: 'ARTIST',
    // 标识该媒体音源是AudioVivid
    // displayTags: AVSessionManager.DisplayTag.TAG_AUDIO_VIVID,
  };
  await this.session.setAVMetadata(metadata);
  // 简单设置一个播放状态 - 暂停 未收藏
  let playbackState: AVSessionManager.AVPlaybackState = {
    state:AVSessionManager.PlaybackState.PLAYBACK_STATE_PLAY,
    isFavorite:false
  };
  await this.session.setAVPlaybackState(playbackState);
  let wantAgentInfo: wantAgent.WantAgentInfo = {
    wants: [
      {
        bundleName: "com.iflytek.scoolvideo",
        abilityName: "EntryAbility"
      }
    ],
    operationType: wantAgent.OperationType.START_ABILITIES,
    requestCode: 0,
    wantAgentFlags: [wantAgent.WantAgentFlags.UPDATE_PRESENT_FLAG]
  }
  wantAgent.getWantAgent(wantAgentInfo).then((agent) => {
    this.session.setLaunchAbility(agent);
  })
  this.session.on('play', () => {
    console.info(`on play , do play task`);
    // 如暂不支持该指令,请勿注册;或在注册后但暂不使用时,通过session.off('play')取消监听
    // 处理完毕后,请使用SetAVPlayState上报播放状态
  });
  this.session.on('pause', () => {
    console.info(`on pause , do pause task`);
    // 如暂不支持该指令,请勿注册;或在注册后但暂不使用时,通过session.off('pause')取消监听
    // 处理完毕后,请使用SetAVPlayState上报播放状态
  });
  this.session.on('stop', () => {
    console.info(`on stop , do stop task`);
    // 如暂不支持该指令,请勿注册;或在注册后但暂不使用时,通过session.off('stop')取消监听
    // 处理完毕后,请使用SetAVPlayState上报播放状态
  });
  await this.session.activate();
}

更多关于HarmonyOS 鸿蒙Next:设置本地媒体会话时,当AVSessionType为voice_call,本地媒体会话未展示设置的媒体会话信息的实战教程也可以访问 https://www.itying.com/category-93-b0.html

2 回复

语音通话在这种模式下,系统通常不会显示过多的媒体信息,因为重点在于语音通信,参考文档:https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V13/js-apis-avsession-V13#avsessiontype10

更多关于HarmonyOS 鸿蒙Next:设置本地媒体会话时,当AVSessionType为voice_call,本地媒体会话未展示设置的媒体会话信息的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


针对帖子标题中提到的HarmonyOS 鸿蒙Next在设置本地媒体会话时,当AVSessionType为voice_call时,本地媒体会话未展示设置的媒体会话信息的问题,以下是专业回答:

在HarmonyOS系统中,当设置AVSessionType为voice_call的本地媒体会话时,如果媒体会话信息未正确展示,这通常与媒体会话的配置或系统权限设置有关。请检查以下几点:

  1. 媒体会话配置:确保在创建和配置媒体会话时,所有必要的参数(如会话名称、图标、描述等)都已正确设置。同时,验证这些参数是否符合系统要求。

  2. 系统权限:检查应用是否已获取必要的权限,如媒体会话管理权限。权限不足可能导致媒体会话信息无法正常展示。

  3. 系统兼容性:确认你的HarmonyOS版本是否支持当前设置的AVSessionType。某些功能可能在特定版本之后才可用。

  4. 调试和日志:使用系统提供的调试工具查看媒体会话的详细状态和日志信息,以便更准确地定位问题。

如果上述检查均无误,但问题依旧存在,可能是系统内部的bug或特定条件下的限制。此时,建议直接联系官网客服进行进一步咨询和排查。

如果问题依旧没法解决请联系官网客服, 官网地址是 https://www.itying.com/category-93-b0.html

回到顶部