如何在按钮上播放声音

how to play sound on button

我是新手,这是我的代码 声音没有播放但是当我点击按钮时显示吐司 有人帮帮我吗??

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();
            }

});

}

}

if (sound==1) 1 from _id in sqlite

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

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

为了

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

您应该尝试的另一件事是更改 if 中的 toast,这样您就可以确定声音是 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;
}

}

将您的 audio/media 文件放在 asset 文件夹中,而不是放在 raw 文件夹中,然后按照上面的代码片段进行操作,它对我来说工作得很好..

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();}

在您的按钮点击事件中触发它