无法在创建时播放媒体播放器



我有一个应用程序,我想,只要它开始,一个小背景音乐(opa gangam风格!)要播放(从sd卡)。我使用代码:

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    MediaPlayer mp = new MediaPlayer();
    String filePath = Environment.getExternalStorageDirectory().getPath() + "/mymusic/gangamstyle.mp3";
    try {
        mp.setDataSource(filePath);
    } catch (IOException e) {
        e.printStackTrace();
    }
    try {
        mp.prepare();
    } catch (IOException e) {
        e.printStackTrace();
    }
    mp.start();

但是当我测试它时,没有播放音乐。我看到一切都很好。我能做错什么呢?谢谢大家

你必须使用setOnPreparedListener来知道媒体播放器何时准备好播放:

MediaPlayer player = new MediaPlayer();
player.setDataSource(filePath);
player.setVolume(100, 100);
player.setLooping(false);
player.setOnPreparedListener(new OnPreparedListener()
{
    @Override
    public void onPrepared(MediaPlayer mp)
    {
        mp.start();
    }
});
player.prepare();

文件路径有问题。当文件路径不正确时,媒体播放器给出这种错误。所以,请检查您的文件路径,然后尝试。

最新更新