HarmonyOS鸿蒙Next中用 ohos.media.player.Player 来播放mp3音频报错!

HarmonyOS鸿蒙Next中用 ohos.media.player.Player 来播放mp3音频报错!

我想实现一个mp3播放器功能,看帖子其他人说推荐用 ohos.media.player.Player 来播放mp3音频,

核心代码如下。

```java
player.setSource(source);
player.setPlayerCallback(playerCallback);
player.prepare();
player.play();

private Player.IPlayerCallback playerCallback = new Player.IPlayerCallback() {
    @Override
    public void onPrepared() {

        HiLog.info(LABEL_LOG, "onPrepared");
        HiLog.info(LABEL_LOG, "isNowPlaying: %{public}s", player.isNowPlaying());

        HiLog.info(LABEL_LOG, "getCurrentTime: %{public}s", player.getCurrentTime());
        HiLog.info(LABEL_LOG, "getDuration: %{public}s", player.getDuration());
    }

    @Override
    public void onMessage(int i, int i1) {
        HiLog.info(LABEL_LOG, "onMessage");
    }

    @Override
    public void onError(int i, int i1) {
        HiLog.info(LABEL_LOG, "onError, i: %{public}s, i1: %{public}s", i, i1);
    }

    @Override
    public void onResolutionChanged(int i, int i1) {
        HiLog.info(LABEL_LOG, "onResolutionChanged");
    }

    @Override
    public void onPlayBackComplete() {
        HiLog.info(LABEL_LOG, "onPlayBackComplete");
    }

    @Override
    public void onRewindToComplete() {
        HiLog.info(LABEL_LOG, "onRewindToComplete");
    }

    @Override
    public void onBufferingChange(int i) {
        HiLog.info(LABEL_LOG, "onBufferingChange");
    }

    @Override
    public void onNewTimedMetaData(Player.MediaTimedMetaData mediaTimedMetaData) {
        HiLog.info(LABEL_LOG, "onNewTimedMetaData");
    }

    @Override
    public void onMediaTimeIncontinuity(Player.MediaTimeInfo mediaTimeInfo) {
        HiLog.info(LABEL_LOG, "onMediaTimeIncontinuity");
    }
};

在手机远程模拟器里面运行报错如下:

02-16 21:04:50.516 7873-25684/com.waylau.hmos.musicplayer I 00001/MainAbilitySlice: onError, i: 1, i1: -19

找下了错误码,前面的1说的是未知错误,后面的-19就不知是啥意思了。

之后便再也获取不到 getCurrentTime、getDuration 的值,无法知道这个mp3歌曲的播放进度,是还在放还是已经放完了?(本身手机远程模拟器也是听不到声音的)。


```plaintext
02-16 21:40:43.746 29502-29502/com.waylau.hmos.musicplayer I 00001/MainAbilitySlice: getCurrentTime: 0
02-16 21:40:43.747 29502-29502/com.waylau.hmos.musicplayer I 00001/MainAbilitySlice: getDuration: -1
02-16 21:40:43.750 29502-4064/com.waylau.hmos.musicplayer I 00001/MainAbilitySlice: onError, i: 62980137, i1: 0
11 回复

老卫这个问题解决了嘛,我也出现了这个报错,我是一开始可以播放MP3文件,但是多次点击(大约130次)播放之后就有这个报错了,怀疑是里面哪块数组超范围了?

我在每次播放完执行release()操作,无效。

然后尝试只使用10个来播放,每次播放不new了,还是大约130次播放之后报错。

然后,我发现,即使release()之后,整个播放器对象实例好像没有释放?

更多关于HarmonyOS鸿蒙Next中用 ohos.media.player.Player 来播放mp3音频报错!的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


api的问题,有些版本可以,有些不行。你升级到最新版本试下。我也没有去测试所有的版本,

好嘞,谢谢啦,

开发者你好,目前wearable的version 4是有问题的,version 3是没问题的,phone和tablet只有version 4的,都有问题,TV的都没有问题。已经在抓紧修复中。

好的。明白。好的。明白。好的。明白。好的。明白。

您好,你这个是用的手机测试的吧,我试了一下使用TV没问题,同样的代码使用手机却是有问题的,我这边会反馈并发个帖子让鸿蒙处理一下

嗯。记得当时只是在 Car 和 Phone 远程设备模拟器上测过。

你好,我也在弄多媒体这一块,问题好像比较多,也遇到了-19的问题

我是做的player视频播放,我发现-19应该是跟source关系比较大,鸿蒙这个errorcode实在一言难尽,资料不好找,errorcode也提供不了任何帮助

开发者你好,收到你的反馈,我们将尽快将问题转发相关责任人处理,因正值假期,当前咨询人数较多,请耐心等待。

在HarmonyOS鸿蒙Next中使用ohos.media.player.Player播放MP3音频时,报错可能由以下原因引起:

  1. 权限问题:确保在config.json中声明了ohos.permission.READ_MEDIAohos.permission.WRITE_MEDIA权限。

  2. 文件路径错误:检查音频文件路径是否正确,确保文件存在于指定路径。

  3. Player初始化问题:确保Player对象正确初始化,并设置了正确的数据源。例如:

    let player = media.createPlayer();
    player.src = 'file:///data/storage/el1/base/files/audio.mp3';
    player.prepare();
    player.play();
  4. 资源释放问题:确保在播放结束后正确释放Player资源,避免内存泄漏。

  5. 系统兼容性:确认使用的HarmonyOS版本支持ohos.media.player.Player,并检查是否有相关API变更。

  6. 音频格式支持:虽然MP3是常见格式,但某些特定编码的MP3文件可能不被支持,尝试使用其他格式如AAC或WAV。

  7. 日志分析:查看设备日志,获取更详细的错误信息,帮助定位问题。

如果以上方法无法解决问题,建议查阅官方文档或社区论坛,获取更多技术支持。

在使用 ohos.media.player.Player 播放MP3音频时,常见报错可能包括资源路径错误、权限未配置或播放器状态异常。请检查以下内容:

  1. 资源路径:确保音频文件路径正确,且文件存在。
  2. 权限配置:在 config.json 中添加 ohos.permission.READ_MEDIA 权限。
  3. 播放器状态:确保在 prepare()play() 之前正确初始化播放器。

示例代码:

Player player = new Player(context);
player.setSource(new Source("file:///sdcard/audio.mp3"));
player.prepare();
player.play();

如仍报错,请检查日志获取具体错误信息。

回到顶部
AI 助手
你好,我是IT营的 AI 助手
您可以尝试点击下方的快捷入口开启体验!