MediaPlayer用setAudioStreamType(AudioManager.STREAM_RING)不玩android

时间:2018-03-22 11:34:07

标签: android android-mediaplayer android-audiomanager ringtone

我正在处理音频呼叫应用并试图播放存储在.mp3文件夹中的raw文件。

我希望将此文件作为Ringtone

播放

为此,我使用了mediaPlayer.setAudioStreamType(AudioManager.STREAM_RING);

当我使用此流时,.mp3未播放(或可能正在播放我无法听到声音)

如果我没有指定任何AudioStreamType,那么该文件将作为MUSIC流播放,我不想要

注意:我的设备中每种类型的音量(铃声,通知,通话,音乐)都设置为已满

我的代码

public MediaPlayer playRingtone(int fileName, boolean loopRingtone) {
        mediaPlayer = MediaPlayer.create(mContext, fileName);
        if (android.os.Build.VERSION.SDK_INT >= 21) {
            AudioAttributes.Builder b = new AudioAttributes.Builder();
            b.setUsage(AudioAttributes.USAGE_NOTIFICATION_RINGTONE);
            b.setContentType(AudioAttributes.CONTENT_TYPE_UNKNOWN);
            mediaPlayer.setAudioAttributes(b.build());
        } else {
                mediaPlayer.setAudioStreamType(AudioManager.STREAM_RING);
        }
        mediaPlayer.setLooping(loopRingtone);
        mediaPlayer.start();
        mediaPlayer.setOnErrorListener(this);
        mediaPlayer.setOnCompletionListener(this);
        return mediaPlayer;
    }

0 个答案:

没有答案