android - 铃声类无法在Android中播放声音

标签 android audio ringtone ringtonemanager

我正在使用Ringtone类在消息发送时播放声音。但是铃声无法在某些设备上播放声音,例如Motorola Turbo Droid。我正在使用像这样的铃声类。

Uri uri = Uri.parse(ContentResolver.SCHEME_ANDROID_RESOURCE + "://"+  mContext.getPackageName() + "/" + R.raw.send_sound);
Ringtone ringtone = RingtoneManager.getRingtone(mContext, uri);
ringtone.play();

最佳答案

我正在使用媒体播放器来播放原始文件夹中的mp3文件,并且效果很好。

public class DummyActivity extends AppCompatActivity {

    MediaPlayer mPlayer;


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_dummy);
        playSound()
}
void playSound() {
        if (mPlayer != null) {
            mPlayer.stop();
            mPlayer.reset();
        }
        mPlayer = MediaPlayer.create(DummyActivity.this, R.raw.bubble);
        mPlayer.start();
    }

或者你可以像这样铃声类
try {
  Uri path = Uri.parse("android.resource://"+getPackageName()+"/raw/sound.mp3");
  // The line below will set it as a default ring tone replace
  // RingtoneManager.TYPE_RINGTONE with RingtoneManager.TYPE_NOTIFICATION
  // to set it as a notification tone
  RingtoneManager.setActualDefaultRingtoneUri(
                    getApplicationContext(), RingtoneManager.TYPE_RINGTONE,
                    path);//Optional

  Ringtone r = RingtoneManager.getRingtone(getApplicationContext(), path); 
  r.play();
 } 
catch (Exception e) {
 e.printStackTrace(); 
}

谢谢,快乐编码.....

关于android - 铃声类无法在Android中播放声音,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57069280/

相关文章:

java - 如何去除wav文件中的噪音?

iphone - 听声音在 iPhone 模拟器上有效,但在设备上无效

android - AppWidgetHostView 无法正确处理 onClick/onLongClick

android - 可以显示表格的网格吗?

java - Eclipse 将不会在 Linux 中生成 R.Java

java - 如何访问和播放 Java 资源类文件夹中的音频文件?

iphone - 在应用程序中使用 iPhone 默认警报声音

android - 从 SD 卡文件设置铃声通知

Android:清除所有应用程序的缓存?