gpt4 book ai didi

android - 声音无法在 Nexus 5 Android 5.0( Lollipop )上播放

转载 作者:行者123 更新时间:2023-12-02 23:48:45 25 4
gpt4 key购买 nike

在我的应用程序中,我有以下代码:

       try {
AssetFileDescriptor afd = context.getAssets().openFd(SOUNDS + filePath + MP3);
MediaPlayer mediaPlayer = new MediaPlayer();
if (useMediaVolume) {
mediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
} else {
mediaPlayer.setAudioStreamType(AudioManager.STREAM_RING);
}
mediaPlayer.setDataSource(afd.getFileDescriptor(), afd.getStartOffset(), afd.getLength());
mediaPlayer.setOnPreparedListener(prepareListener);
mediaPlayer.prepareAsync();
} catch (IOException ex) {
ex.printStackTrace();
} catch (SecurityException ex) {
MonitorDataHelper.logException(ex);
ex.printStackTrace();
}

private MediaPlayer.OnPreparedListener prepareListener = new MediaPlayer.OnPreparedListener() {
@Override
public void onPrepared(MediaPlayer mediaPlayer) {
mediaPlayer.setOnCompletionListener(completionListener);
mediaPlayer.start();
}
};

private MediaPlayer.OnCompletionListener completionListener = new MediaPlayer.OnCompletionListener() {
@Override
public void onCompletion(MediaPlayer mediaPlayer) {
mediaPlayer.stop();
mediaPlayer.release();
}
};

它确实可以在 pre-5.0 甚至 Nexus 7 Android 5.0 上运行,但根据用户报告,它不适用于 Nexus 5。

声音文件很小 - 国际象棋游戏的移动声音。 Windows 显示它们的长度,如 00:00:00,但它们播放得很好。 VBR 约为 100kbs:

enter image description here

在第一次报告之前,我开始玩 w/o asyncPrepare ,并且它适用于 Lollipop 之前,但即使在 Nexus 7 上也不适用于 Lollipop 。现在它适用于我的 Nexus 7(5.0.2),但根据用户的说法,它不适用于 Nexus 5。

有什么想法可以尝试吗?提前致谢。

最佳答案

终于找到了问题的原因:长度小于300ms的声音文件在Android 5.0中无法在某些设备上播放(Genymotion Nexus 5/6 veryfied)。所以解决方案是通过向文件本身添加静音来创建更长的文件。

关于android - 声音无法在 Nexus 5 Android 5.0( Lollipop )上播放,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27736255/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com