gpt4 book ai didi

Android MediaPlayer OnPreparedListener

转载 作者:塔克拉玛干 更新时间:2023-11-02 07:59:56 24 4
gpt4 key购买 nike

我正在开发一个简单的应用程序,并使用 MediaPlayer 在 1 个 Activity 中播放一些背景噪音。我正在阅读 MediaPlayer,但不确定是否要实现 OnPreparedListener 来触发 start() 方法。每种方法的优缺点是什么?

方法一:

    mediaPlayer = MediaPlayer.create(context, R.raw.sound);
mediaPlayer.setLooping(true);
mediaPlayer.start();

方法二:

    mediaPlayer = MediaPlayer.create(context, R.raw.sound);
mediaPlayer.setLooping(true);
mediaPlayer.setOnPreparedListener(new OnPreparedListener() {

@Override
public void onPrepared(MediaPlayer mp) {
mp.start();

}
});

最佳答案

根据文档,当您播放本地可用资源时调用 start() 是有效的,而 MediaPlayer 不需要获取数据并处理它玩。例如播放原始文件夹中的音频资源。

如果您尝试从远程源播放资源,最好使用 OnPreparedListener(),因为它可能涉及获取和解码媒体数据。

因此,如果您确定您的资源在本地可用且长度较短,请选择方法 1。否则 方法 2 将是合适的。

理想情况下,我更喜欢这个。

MediaPlayer mediaPlayer = new MediaPlayer();
mediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
mediaPlayer.setDataSource(getApplicationContext(), myUri);
mediaPlayer.setOnPreparedListener(new OnPreparedListener(){

@Override
public void onPrepared(MediaPlayer mp) {
mp.start();
}
});
mediaPlayer.prepareAsync();

MediaPlayer 对我来说一直很难用。所以,我建议您从 developer docs 开始。 .通过它,了解状态图。我相信它会帮助您解决许多您尚未遇到的问题。

关于Android MediaPlayer OnPreparedListener,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22827190/

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