OpenHarmony 媒体开发常见问题

OpenHarmony 媒体开发常见问题

媒体开发常见问题

如何申请设备上的媒体读写权限。

适用于:OpenHarmony SDK 3.2.3.5版本,API9 Stage模型

  1. 在module.json5配置文件中配置媒体读写权限ohos.permission.READ_MEDIA和ohos.permission.WRITE_MEDIA。

示例:

{
  "module" : {
    "requestPermissions":[
      {
        "name" : "ohos.permission.READ_MEDIA",
        "reason": "$string:reason"
      },
      {
        "name" : "ohos.permission.WRITE_MEDIA",
        "reason": "$string:reason"
      }
    ]
  }
}
  1. 这两个权限的授权方式均为user_grant,因此需要调用requestPermissionsFromUser接口,以动态弹窗的方式向用户申请授权。
let permissions: Array<string> = ['ohos.permission.READ_MEDIA','ohos.permission.WRITE_MEDIA']
context.requestPermissionsFromUser(permissions).then((data) => {
    console.log("Succeed to request permission from user with data: " + JSON.stringify(data))
}).catch((error) => {
    console.log("Failed to request permission from user with error: " + JSON.stringify(error))
})

MP4格式的视频为什么播放不了?

适用于:OpenHarmony SDK 3.2.7.5版本,API9 Stage模型

暂不支持h.265编码格式的MP4视频播放。

调用媒体库getAlbums方法,没有收到返回,也没有捕获到异常是为什么

适用于:OpenHarmony SDK 3.2.5.3版本,API9 Stage模型

getAlbums方法需要权限:ohos.permission.READ_MEDIA,从OpenHarmony权限定义列表查询知道ohos.permission.READ_MEDIA权限是需要用户授权。

  1. 在module.json5中配置权限:
"requestPermissions": [
  {
    "name": "ohos.permission.READ_MEDIA"
  }
]
  1. 在MainAbility.ts -> onWindowStageCreate页面加载前需要增加用户授权代码:
private requestPermissions() {
let permissionList: Array<string> = [
  "ohos.permission.READ_MEDIA"
];
this.context.requestPermissionsFromUser(permissionList)
  .then((data) => {
    console.info(`request permission data result = ${data.authResults}`)
  })
  .catch((err) => {
    console.error(`fail to request permission error:${err}`)
  })
}

OpenHarmony媒体库的物理路径是什么

适用于:OpenHarmony SDK 3.2.5.5版本,API9 Stage模型

/storage/media/100/local/files/Pictures
/storage/media/100/local/files/Audios
/storage/media/100/local/files/Videos
/storage/media/100/local/files/Camera
/storage/media/100/local/files/Documents
/storage/media/100/local/files/Download

为什么视频创建至十几个时新创建的视频无法播放甚至崩溃?

适用于:OpenHarmony SDK 3.2.7.5版本,API9 Stage模型

当前限制最多创建13个媒体播放实例。

在Stage模型下调用midaLibrary.getMediaLibrary()接口,IDE报错

适用于:OpenHarmony SDK 3.25.5版本,API9 Stage模型

Stage模型下,获取媒体库实例应该调用mediaLibrary.getMediaLibrary(context: Context)。

调用midaLibrary.getFileAssets()接口返回的内容如何排序

适用于:OpenHarmony SDK 3.2.5.5版本,API9 Stage模型

通过MediaFetchOptions对象参数里面的order属性进行排序。

openharmony媒体播放失败<406 no buffer>

适用于:OpenHarmony SDK 3.2.5.5版本,API9 Stage模型

V900单板未适配HDI驱动, 需要厂商进行适配。

媒体库各公共路径支持的文件格式

适用于:OpenHarmony SDK 3.2.5.5版本,API9 Stage模型

如何解决多次使用媒体库FetchFileResult接口后应用崩溃

适用于:OpenHarmony SDK 3.2.5.5版本,API9 Stage模型

在FetchFileResult对象每次调用完,通过FetchFileResult.close()方法,释放该对象并使其失效。如果不释放将会内存泄露,导致应用崩溃。

有可以将视频音量与系统音量区分开,单独调节视频音量的接口

适用于:OpenHarmony SDK 3.2.5.7版本,API9 Stage模型

player的setvolume就是只调播的这个流的,系统音量是AudioManager里调的,目前不打算对三方开放了。


2 回复

OpenHarmony媒体开发常见问题主要涉及音频、视频、图像处理等方面的开发与调试。以下是一些常见问题及其解答:

  1. 音频播放问题

    • 问题:音频播放时出现卡顿或延迟。
    • 原因:可能是音频缓冲区设置不当,或者音频解码器性能不足。
    • 解决方法:调整音频缓冲区大小,确保音频解码器性能满足需求。
  2. 视频播放问题

    • 问题:视频播放时出现画面撕裂或卡顿。
    • 原因:可能是视频帧率与设备刷新率不匹配,或者视频解码器性能不足。
    • 解决方法:调整视频帧率,确保视频解码器性能满足需求。
  3. 图像处理问题

    • 问题:图像处理时出现内存泄漏或性能瓶颈。
    • 原因:可能是图像处理算法优化不足,或者内存管理不当。
    • 解决方法:优化图像处理算法,合理管理内存资源。
  4. 媒体格式支持问题

    • 问题:某些媒体格式无法播放。
    • 原因:可能是系统未集成相应的编解码器。
    • 解决方法:确认系统是否支持该媒体格式,必要时集成相应的编解码器。
  5. 媒体资源管理问题

    • 问题:媒体资源加载速度慢或占用内存过多。
    • 原因:可能是资源加载策略不当,或者资源压缩不足。
    • 解决方法:优化资源加载策略,适当压缩媒体资源。
  6. 媒体同步问题

    • 问题:音视频不同步。
    • 原因:可能是音视频时间戳处理不当,或者同步机制不完善。
    • 解决方法:确保音视频时间戳正确,完善同步机制。
  7. 媒体设备兼容性问题

    • 问题:媒体功能在某些设备上无法正常使用。
    • 原因:可能是设备硬件或驱动不支持某些媒体功能。
    • 解决方法:确认设备硬件和驱动是否支持所需媒体功能。
  8. 媒体权限问题

    • 问题:媒体功能无法访问设备资源(如麦克风、摄像头)。
    • 原因:可能是权限未正确申请或配置。
    • 解决方法:确保在应用中正确申请和配置相关权限。

以上是OpenHarmony媒体开发中的一些常见问题及其解决方法。开发者应根据具体场景进行调试和优化。


在OpenHarmony媒体开发中,常见问题包括:

  • 音视频同步问题:确保音视频帧时间戳一致,使用系统提供的同步机制。
  • 编解码兼容性:使用OpenHarmony支持的编解码器,如H.264、AAC,确保设备兼容。
  • 性能优化:合理使用硬件加速,避免过度占用CPU和内存。
  • 媒体文件格式支持:确认OpenHarmony支持的媒体格式,如MP4、MP3等。
  • 权限管理:确保应用具备访问媒体文件的权限,如读取存储、录音等。
  • API使用:熟悉OpenHarmony媒体API,如MediaPlayerMediaRecorder,避免误用。
  • 调试与日志:利用OpenHarmony的调试工具和日志系统,快速定位问题。
回到顶部