振动效果很好,但声音在Android上不起作用

时间:2018-11-21 22:38:33

标签: android

我想同时施加振动和声音。 振动效果很好,但声音不起作用。  我得到的声音是mp3。

我将如何解决此问题? 谢谢你。

public void onReceive(Context context, Intent intent) {

    Toast.makeText(context,"Get Ready Bus is Near",Toast.LENGTH_LONG).show();

    // Initializing instance of Vibrator.
    Vibrator v = (Vibrator) context.getSystemService(Context.VIBRATOR_SERVICE);

    // Initializing instance of MediaPlayer.
    MediaPlayer mediaPlayer = new MediaPlayer();

    // Starting Vibration
    v.vibrate(2000);

    try {
        // Setting the source of audio file.
        //String path = "android.resource://"+"com.example.myproject"+"/raw/"+audioFile;


mediaPlayer.setDataSource(context,Uri.parse("android.resource://"+"com.example.fahad.finalyearprojectlayout"+"/raw/"+"sound.mp3"));  // Fill the information accordingly.
        mediaPlayer.prepare();
        // playing audio.
        mediaPlayer.start();
    } catch (Exception e) {
        e.printStackTrace();
    }

}

2 个答案:

答案 0 :(得分:1)

对于创建mediaPlayer的方式,这是一种更短,更短的方式

MediaPlayer mp = MediaPlayer.create(getApplicationContext(), R.raw.sound);
mp.start();

现在,这就是您的代码的外观。您不需要trycatch块:

MediaPlayer mp = MediaPlayer.create(getApplicationContext(), R.raw.sound);
mp.start();
v.vibrate(2000);

在开始振动之前,尝试启动mediaPlayer。如果这不起作用,请确保已在设备中打开声音。如果仍有问题,请在下面发布新问题。但是,如果您为您的应用启用了声音和振动功能,那么我不明白为什么它不起作用。

答案 1 :(得分:0)

此代码对我有用

public void playNotificationSound() {
    try {
        Uri alarmSound = Uri.parse(ContentResolver.SCHEME_ANDROID_RESOURCE
                + "://" + mContext.getPackageName() + "/raw/sound");
        Ringtone r = RingtoneManager.getRingtone(mContext, alarmSound);
        r.play();
    } catch (Exception e) {
        e.printStackTrace();
    }
}