java - Android - MediaPlayer 继续前进

标签 java android

我的应用程序中有这段代码

 mp.start();

    play=mp.isPlaying();

    while(play)
    {
        play=mp.isPlaying();
    }

    mp.stop();
    mp.release();

当我调试时(我使用真正的 Android 设备),日志窗口不断显示类似“V/Mediaplayer: isPlaying: 1”的内容。当我关闭应用程序时,它也会打印该字符串。我确信我的应用程序在播放文件后退出循环,因为它执行这部分之后的所有指令。我也尝试使用 OnCompletionListener,但它并没有像预期的那样工作。

我在 AsyncTask 中执行此代码,这可能是问题所在吗?

最佳答案

那个 while 循环太可怕了,你不需要它,只需使用 MediaPlayer 回调或创建你自己的回调

link of android mediaPlayer official documentation

接下来,您不能调用 .start() ,然后再调用 stop() ..也许这是一个测试,但如果它是实时代码,则可能会出现问题。

OnCompletionListener 仅在播放轨道结束时为您提供回调

为了跟踪玩家的状态,您可以使用枚举和接口(interface)来进行自己的回调

关于java - Android - MediaPlayer 继续前进,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28450036/

相关文章:

java - 未找到名称正在获取 JSON,Android

android - 如何在发布前重置 Google Play 游戏排行榜?

java - Photoshop 图片在 Android 应用程序开发中无法运行(使用 Eclipse)

java - 如何获取当前 jsp 应用程序版本的内部版本号(使用 CVS)

Java FileInputStream读取字符不准确????

java - 在android中查找触摸事件之间的持续时间

java - 如何获取Android中 ListView 中单击的项目的字符串值

java - 在对象内部使用对象的构造函数

java - 如何在 Spring data Neo4j 4 中定义命名查询

android - 实时查询Android Camera2的相机参数