很多Mediaplayers缩小到一个Mediaplayer?怎么样?音板

时间:2017-01-28 12:30:28

标签: java android android-studio

我是Java / Android Studio初学者,我正在写一个Soundboard。

我的音板每页大约有10-15个按钮,这是我的以下问题

我宣布了很多Mediaplayers

  public class MainActivity extends AppCompatActivity {

 MediaPlayer X1;
 MediaPlayer X2;
 MediaPlayer X3;
 MediaPlayer X4;
 MediaPlayer X5;
 MediaPlayer X6;


    protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    X1 = MediaPlayer.create(this, R.raw.x1);
    X2 = MediaPlayer.create(this, R.raw.x2);
    X3 = MediaPlayer.create(this, R.raw.x3);
    X4 = MediaPlayer.create(this, R.raw.x4);
    X5 = MediaPlayer.create(this, R.raw.x5);
    X6 = MediaPlayer.create(this, R.raw.6);

在我的XML文件中,我为每个Button工作了

<Button
        android:text="X1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/button10"
        android:onClick="X1"
        android:elevation="0dp"
        android:background="android:attr/colorEdgeEffect"
        android:forceHasOverlappingRendering="false"
        android:textColor="@android:color/white"
        android:textSize="18sp"
        android:textStyle="normal|italic"
        android:layout_marginLeft="17dp"
        android:layout_marginStart="17dp"
        android:layout_marginTop="317dp" />

现在我的问题是每个媒体播放器都有很多工作,并且有很多媒体播放器,应用程序崩溃/出现问题。

如何将所有按钮汇总到一个MediaPlayer?

这只是一个示例代码,我的工作方式是否有人可以为我更改此代码? 在一些线程中,我读了&#34; oncompletionlistener&#34;但我从未使用它。

1 个答案:

答案 0 :(得分:0)

Stackoverflow不会让我回答,但我会再试一次:

  • 您可以重复使用一个媒体播放器参考,无需定义几个参考。
  • 您应该根据按钮ID(或类似的东西)确定要在onClick处理程序中播放哪个原始音频(即单击按钮时调用的方法,此处视图为参数),即调用create使用另一个原始音频ID引用。

类似的东西:

android:onClick="playFile"

然后你有

public void playFile(View view){
       switch(view.getId()) {
    case R.id.button1:
      // play audio file 1
      break;
    case R.id.button2:
      // play audio file 2
      break;
     //....
  }
 }