java - Android 声音只播放一次

标签 java android audio

我正在用java为android制作一个应用程序,每当单击按钮时,就会播放声音。它工作正常,但按一次按钮即可播放,然后按该按钮或任何其他按钮不会执行任何操作。

import android.app.Activity;
import android.media.MediaPlayer;
import android.os.Bundle;
import android.view.Menu;
import android.view.View;
import android.widget.Button;

public class MainActivity extends Activity {

Button s1, s2, s3, s4;
MediaPlayer ss1, ss2, ss3, ss4;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.linear);    

    s1 = (Button) findViewById(R.id.s1);
    s2 = (Button) findViewById(R.id.s2);
    s3 = (Button) findViewById(R.id.s3);
    s4 = (Button) findViewById(R.id.s4);

    s1.setOnClickListener(new View.OnClickListener(){

        public void onClick(View v){
            ss1 = MediaPlayer.create(MainActivity.this, R.raw.sound1);
            ss1.start();
        }
    });

    s2.setOnClickListener(new View.OnClickListener(){

        public void onClick(View v){
            ss2 = MediaPlayer.create(MainActivity.this, R.raw.sound2);
            ss2.start();
        }
    });

    s3.setOnClickListener(new View.OnClickListener(){

        public void onClick(View v){
            ss3 = MediaPlayer.create(MainActivity.this, R.raw.sound3);
            ss3.start();
        }
    });

    s4.setOnClickListener(new View.OnClickListener(){

        public void onClick(View v){
            ss4 = MediaPlayer.create(MainActivity.this, R.raw.sound4);
            ss4.start();
        }
    });



}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    // Inflate the menu; this adds items to the action bar if it is present.
    getMenuInflater().inflate(R.menu.main, menu);
    return true;
}

}  

我该如何解决这个问题?

最佳答案

你为什么不试试这个方法
仅使用一个 MediaPlayer 并重复使用它。像这样的事情

    MediaPlayer ss1;
    s1 = (Button) findViewById(R.id.s1);
    s2 = (Button) findViewById(R.id.s2);
    s3 = (Button) findViewById(R.id.s3);
    s4 = (Button) findViewById(R.id.s4);


    s1.setOnClickListener(new View.OnClickListener(){       
           public void onClick(View v){
                ss1= new MediaPlayer();
                ss1= MediaPlayer.create(this, R.raw.sound1);
                ss1.prepare();
                ss1.start();

        }
    });

关于java - Android 声音只播放一次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17176455/

相关文章:

java套接字与服务器端断开连接

java - 服务配置说明

android - 测试环境 "there are no accepted cards available for use with this merchant"Google play集成错误

silverlight - 在 silverlight 3 中从用户的麦克风录制音频

audio - Applescript:检查计算机是否正在播放任何声音

audio - 如何使用Web Audio API在特定位置将音频记录添加到现有音频记录中?

java - 在java中添加两个数字的解释器程序

java - 二叉树问题的 isEmpty 方法

android - 从解析表中删除一行

android - 如何在 Android 主屏幕上制作 4x1 大小的小部件?