旋转细胞停止媒体播放器android



我的代码从列表视图中播放一首歌,一切都很完美,但是,如果我特别旋转它,媒体播放器就会停止,我该如何保持播放?和如果我创建了另一个按钮来暂停,或者类似的东西,我应该使用相同的答案吗?我在按钮中的代码:

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
                }
}

将其放入清单xml文件:

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

即将CCD_ 1添加到活动xml元素。

实际情况是,当你的屏幕方向发生变化时,配置就会发生变化,这会导致Android破坏并重新创建你的活动。

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

然而,这只是一个变通办法。配置更改随时可能发生(例如,将手机放在扩展坞中),因此仅禁用方向更改和键盘更改的配置更改是不够的。

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

最新更新