旋转单元停止媒体播放器android

时间:2015-03-19 22:08:27

标签: java android media-player

我的代码从列表视图播放一首歌,一切都很完美,但是,如果我专门旋转它,媒体播放器停止,我怎么能继续播放? 和!如果我创建另一个按钮暂停,或类似的东西,我应该使用相同的答案吗? 我的代码在一个按钮中:

testme.setOnClickListener(new Button.OnClickListener() {
            public void onClick(View v) {
                if(nombre.matches("Kaminomi")) { //ignore this
                    try {
                        mp.setDataSource(nombreSong);
                        mp.prepare();
                    } catch (IOException e) {
                        e.printStackTrace();
                    }
                    if (validar == false) {
                        validar = true;
                        mp.start();
                        Toast.makeText(getApplicationContext(), "Reproduciendo ahora: \n" + nombreSong, Toast.LENGTH_LONG).show();
                        testme.setText("Stop :D");
                        testme.setCompoundDrawablesWithIntrinsicBounds(R.drawable.nisekoi1,0,0,0);
                    } else {
                        validar = false;
                        Toast.makeText(getApplicationContext(), "Deteniendo: \n" + nombreSong, Toast.LENGTH_LONG).show();
                        mp.stop();

                        testme.setText("Play :D");
                    }
                }else{
                     Toast.makeText(getApplicationContext(), "Algo mas creo", Toast.LENGTH_LONG).show(); //ignore this too
                }
}

1 个答案:

答案 0 :(得分:1)

将它放在清单xml文件中:

<activity android:name="MainActivity"
     android:configChanges="keyboardHidden|orientation">

即。将android:configChanges="keyboardHidden|orientation"添加到a​​ctivity xml元素。

发生的事情是,当您的屏幕方向发生变化时,会发生配置更改,这会导致Android销毁并重新创建您的活动。

我的回答中的上述代码将阻止在方向更改或键盘更改发生时发生配置更改。

然而,这只是一种解决方法。可以随时进行配置更改(例如,将手机放在扩展坞中),因此只需禁用配置更改以进行方向更改和键盘更改是不够的。

为了在配置更改期间正确维护对象的状态,片段是一种很好的方法。