android - libGDX/安卓 : How to loop background music without the dreaded gap?

标签 android audio libgdx background-music

我正在使用 libGDX 并面临背景音乐无法在各种 Android 设备(例如运行 Lollipop 的 Nexus 7)上完美循环的问题。每当轨道循环(即从结尾跳到开头)时,都能听到明显的间隙。现在我想知道如何在没有令人不安的间隙的情况下循环播放背景音乐?

我已经尝试过各种方法,例如:

  • 确保轨道中的样本数量是轨道采样率的精确倍数(如 SO 中某处所述)。
  • 各种音频格式,如 .ogg、.m4a、.mp3 和 .wav(.ogg 似乎是 SO 的首选解决方案,但不幸的是,它不适用于我的情况)。
  • 使用 Androids MediaPlayer 和 setLooping(true) 而不是 libGDX 音乐类。
  • 使用 Android MediaPlayer.setNextMediaPlayer()。代码如下所示,它播放两个音轨,中间没有间隙,但不幸的是,一旦第二个 MediaPlayer 结束,第一个就不会再次开始!

        /* initialization */
        afd = context.getAssets().openFd(filename);
        firstBackgroundMusic.setDataSource(afd.getFileDescriptor(), afd.getStartOffset(), afd.getLength());
        firstBackgroundMusic.prepare();
        firstBackgroundMusic.setOnCompletionListener(this);
    
        secondBackgroundMusic.setDataSource(afd.getFileDescriptor(), afd.getStartOffset(), afd.getLength());
        secondBackgroundMusic.prepare();
        secondBackgroundMusic.setOnCompletionListener(this);
    
        firstBackgroundMusic.setNextMediaPlayer(secondBackgroundMusic);
        secondBackgroundMusic.setNextMediaPlayer(firstBackgroundMusic);
    
        firstBackgroundMusic.start();
    
    
    
        @Override
        public void onCompletion(MediaPlayer mp) {
            mp.stop();
            try {
                mp.prepare();
            } catch (IOException e) { e.printStackTrace(); }
        }
    

知道代码 fragment 有什么问题吗?

最佳答案

仅作记录: 调出来是无解的。最后,我们在文件中多次循环播放背景音乐。这样,差距出现的频率就会降低。这不是问题的真正解决方案,而是我们能找到的最佳解决方法。

关于android - libGDX/安卓 : How to loop background music without the dreaded gap?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29311088/

相关文章:

android - Corona SDK - 如何实现对象取消触摸

ios - 如何用值初始化 nsstring?

java - Eclipse java 调试器突然停止工作?

java - 如何检查 TextField 是否集中在 Libgdx 中?

java - 盒子2D |禁用动态主体碰撞,同时仍在碰撞时触发 ContactListener

android - 我的 ListView 背景在滚动过程中变黑 - 如何修复?

java - android: HashMap 变量

Java 将麦克风录制到字节数组并播放声音

audio - DirectSound通常支持回声消除和降噪吗?

android - 下落图像的数量不确定...在 SurfaceView 上显示 帮助!