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

rotation cell stops media player 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">

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

发生的事情是,当您的屏幕方向发生变化时,配置会发生变化,这会导致 Android 破坏并重新创建您的 activity。

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

但这只是一种解决方法。配置更改随时可能发生(例如,将 phone 放在扩展坞中),因此仅针对方向更改和键盘更改禁用配置更改是不够的。

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