Java 如何在按钮上播放声音

Java 如何在按钮上播放声音,java,android,audio,Java,Android,Audio,我是新手,这是我的密码 声音没有播放,但当我点击按钮时,祝酒词显示出来 有人帮我吗 public class DB_Parse extends Activity { MediaPlayer mp; Button button; int ,sound; protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.k

我是新手,这是我的密码 声音没有播放,但当我点击按钮时,祝酒词显示出来 有人帮我吗

public class DB_Parse extends Activity {

MediaPlayer mp;
Button button;
int ,sound;

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


    final int sound = iIdentifikasi.getIntExtra("dataID", 0);

    button=(Button)findViewById(R.id.btnsound);

        button.setOnClickListener(new OnClickListener() {

        @Override    
        public void onClick(View v) {
            if (sound==1){
                mp = MediaPlayer.create(getApplicationContext(), R.raw.munfasil);
                mp.start();

            }

                     Toast.makeText(getApplicationContext(), 
                                   "Sound is Play", Toast.LENGTH_LONG).show();
            }

});

}

}

如果(sound==1)1来自sqlite中的_id

首先,您要声明变量sound两次。 请更改:

 final int sound = iIdentifikasi.getIntExtra("dataID", 0);
为了

你应该尝试的另一件事是在你的if中改变吐司,这样你就可以确定声音是1

       if (sound==1){
            mp = MediaPlayer.create(getApplicationContext(), R.raw.munfasil);
            mp.start();

            Toast.makeText(getApplicationContext(), 
                               "Sound is Play", Toast.LENGTH_LONG).show();

        }

如果toast未显示,则int声音不是1

试试这种方法,它会起作用的

  public class DB_Parse extends Activity {

private static final String TAG = "MyActivity";

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    Log.v(TAG, "Initializing sounds...");

    final MediaPlayer mp = MediaPlayer.create(this, R.raw.youraudio);

    Button play_button = (Button)this.findViewById(R.id.play_button);
    play_button.setOnClickListener(new View.OnClickListener() {
        public void onClick(View v) {
            Log.v(TAG, "Playing sound...");
            mp.start();
        }
    });
    Log.v(TAG, "Sounds initialized.");
}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    getMenuInflater().inflate(R.menu.activity_main, menu);
    return true;
}

}

把你的音频/媒体文件放在资产文件夹中,而不是放在原始文件夹中,然后按照上面的片段操作,这对我来说很好

try
{
   AssetFileDescriptor afd = getAssets().openFd("your_media_file_name.mp3");
   MediaPlayer mp = new MediaPlayer();
   mp.setDataSource(afd.getFileDescriptor(), afd.getStartOffset(),afd.getLength());
   mp.prepare();
   mp.start();
}
catch(Exception e)
{ e.printStackTrace();}

在您的按钮上触发它,单击事件

放入一条日志语句,并检查您正在获取的声音值log.i(“sound=”,“+sound”);在最终int声音之后=IIIdentifikasi.getIntExtra(“数据ID”,0);很高兴帮你投赞成票我们帮你投反对票?这个答案是唯一一个对你的代码有帮助的答案,我正在使用你的代码,告诉你发生了什么,问题出在哪里。。我想在我的活动暂停时停止播放我的声音我的意思是呆在我的活动中。。
try
{
   AssetFileDescriptor afd = getAssets().openFd("your_media_file_name.mp3");
   MediaPlayer mp = new MediaPlayer();
   mp.setDataSource(afd.getFileDescriptor(), afd.getStartOffset(),afd.getLength());
   mp.prepare();
   mp.start();
}
catch(Exception e)
{ e.printStackTrace();}