如何解决Android Studio停止声音
这是我的第一个问题。 我希望我能找到解决方案。 我编码了一个音板应用程序,我希望如果我单击该按钮播放声音。 我很容易理解。 接下来的一点是,如果我单击另一个按钮,则我想停止。 我希望你明白。我用.stop或.pause尝试了很多...
那是我在此页面上的Java代码:
import android.media.MediaPlayer;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.appcompat.app.AppCompatActivity;
import androidx.fragment.app.Fragment;
public class Fragment1 extends Fragment {
public void stop(){
}
Button btone1,btone2,btone3,btone4,btone5,btone6,btone7,btone8,btone9,btone10,btone11,btone12;
@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater,@Nullable ViewGroup container,@Nullable Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.fragment1_layout,container,false);
btone1 = (Button) rootView.findViewById(R.id.btone1);
final MediaPlayer mpone1 = MediaPlayer.create(getActivity(),R.raw.sone1);
btone1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
mpone1.start();
}
});
btone2 = (Button) rootView.findViewById(R.id.btone2);
final MediaPlayer mpone2 = MediaPlayer.create(getActivity(),R.raw.sone2);
btone2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
mpone2.start();
}
});
btone3 = (Button) rootView.findViewById(R.id.btone3);
final MediaPlayer mpone3 = MediaPlayer.create(getActivity(),R.raw.sone2);
btone3.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
mpone3.start();
}
});
btone4 = (Button) rootView.findViewById(R.id.btone4);
final MediaPlayer mpone4 = MediaPlayer.create(getActivity(),R.raw.sone1);
btone4.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
mpone4.start();
}
});
btone5 = (Button) rootView.findViewById(R.id.btone5);
final MediaPlayer mpone5 = MediaPlayer.create(getActivity(),R.raw.sone1);
btone5.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
mpone5.start();
}
});
btone6 = (Button) rootView.findViewById(R.id.btone6);
final MediaPlayer mpone6 = MediaPlayer.create(getActivity(),R.raw.sone1);
btone6.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
mpone6.start();
}
});
btone7 = (Button) rootView.findViewById(R.id.btone7);
final MediaPlayer mpone7 = MediaPlayer.create(getActivity(),R.raw.sone1);
btone7.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
mpone7.start();
}
});
btone8 = (Button) rootView.findViewById(R.id.btone8);
final MediaPlayer mpone8 = MediaPlayer.create(getActivity(),R.raw.sone1);
btone8.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
mpone8.start();
}
});
btone9 = (Button) rootView.findViewById(R.id.btone9);
final MediaPlayer mpone9 = MediaPlayer.create(getActivity(),R.raw.sone1);
btone9.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
mpone9.start();
}
});
btone10 = (Button) rootView.findViewById(R.id.btone10);
final MediaPlayer mpone10 = MediaPlayer.create(getActivity(),R.raw.sone1);
btone10.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
mpone10.start();
}
});
btone11 = (Button) rootView.findViewById(R.id.btone11);
final MediaPlayer mpone11 = MediaPlayer.create(getActivity(),R.raw.sone1);
btone11.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
mpone11.start();
}
});
btone12 = (Button) rootView.findViewById(R.id.btone12);
final MediaPlayer mpone12 = MediaPlayer.create(getActivity(),R.raw.sone1);
btone12.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
mpone12.start();
}
});
////
return rootView;
}
}
解决方法
使用单个MediaPlayer对象而不是创建多个对象
然后停止使用此代码
private void stopPlaying() {
if (mp != null) {
mp.stop();
mp.release();
mp = null;
}
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。