java - 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;
}
}
推荐阅读
- python - 使用python从json文件中读取
- python - 尝试使用 launchctl / launchd 运行 Python 脚本,但它不会加载。退出状态为 2
- python - 收到此错误:“新样式 getargs 格式但参数不是元组”| 开放式,蟒蛇
- node.js - 无法读取未定义节点 PUG 的属性“调用”
- wpf - 反转布尔可见性转换器的输出?
- model - 如何正确通知模型层中的修改逻辑层?
- python-3.x - 艰难地学习python练习23
- cpu-architecture - 分支折叠示例不清楚
- android - 访问用户选择文件夹的子目录中的 sqlite 数据库和图像 - Android
- c++ - 将对象强制转换为派生类以访问父类的受保护成员