Java Android-播放资产文件夹中的声音时出现问题

Java Android-播放资产文件夹中的声音时出现问题,java,android,assets,Java,Android,Assets,我有5个mp3文件存储在资产文件夹中。这些文件都是25KB。 我使用以下方式加载文件: manager = context.getAssets(); this.inputStream = manager.openFd(fileName).createInputStream(); 每当我试着播放这些文件时,声音都会被搞得一团糟,就像它们被混合了一样。 我已经对应用程序进行了zipaling,但没有结果。 这个问题有什么帮助吗?提前谢谢 对于start,请尝试消除一个潜在问题:将inputStre

我有5个mp3文件存储在资产文件夹中。这些文件都是25KB。
我使用以下方式加载文件:

manager = context.getAssets();
this.inputStream = manager.openFd(fileName).createInputStream();
每当我试着播放这些文件时,声音都会被搞得一团糟,就像它们被混合了一样。 我已经对应用程序进行了zipaling,但没有结果。
这个问题有什么帮助吗?提前谢谢

  • 对于start,请尝试消除一个潜在问题:将inputStream与原始文件进行比较

  • 尝试直接打开和播放文件

  • 对于start,请尝试消除一个潜在问题:将inputStream与原始文件进行比较

  • 尝试直接打开和播放文件


  • 您也可以尝试从res/raw文件夹播放它们:

    MediaPlayer p=MediaPlayer.create(this, R.raw.soundid);
    p.start();
    

    您也可以尝试从res/raw文件夹播放它们:

    MediaPlayer p=MediaPlayer.create(this, R.raw.soundid);
    p.start();
    

    经过研究,我自己找到了雨篷。问题是我使用以下方法设置MediaPlayer的数据源:

    inputStream = manager.openFd(fileName).createInputStream();    
    player.setDataSource(inputStream.getFD());
    
    它只是对setDataSource(fd,0,0x7ffffffffffffffffl)的调用,传递最小偏移量和此任意长度,使声音完全混合播放。
    使用以下代码时,一切正常:

    AssetFileDescriptor descriptor = manager.openFd(fileName);
    long start = descriptor.getStartOffset();
    long end = descriptor.getLength();
    player.setDataSource(descriptor.getFileDescriptor(), start,end);
    

    经过研究,我自己找到了雨篷。问题是我使用以下方法设置MediaPlayer的数据源:

    inputStream = manager.openFd(fileName).createInputStream();    
    player.setDataSource(inputStream.getFD());
    
    它只是对setDataSource(fd,0,0x7ffffffffffffffffl)的调用,传递最小偏移量和此任意长度,使声音完全混合播放。
    使用以下代码时,一切正常:

    AssetFileDescriptor descriptor = manager.openFd(fileName);
    long start = descriptor.getStartOffset();
    long end = descriptor.getLength();
    player.setDataSource(descriptor.getFileDescriptor(), start,end);