具有setAudioStreamType(AudioManager.STREAM_环)的MediaPlayer未播放android

具有setAudioStreamType(AudioManager.STREAM_环)的MediaPlayer未播放android,android,android-mediaplayer,android-audiomanager,ringtone,Android,Android Mediaplayer,Android Audiomanager,Ringtone,我正在开发一个音频通话应用程序,并尝试播放存储在raw文件夹中的.mp3文件 我想将此文件作为铃声播放 为此,我使用了mediaPlayer.setAudioStreamType(AudioManager.STREAM_环) 当我使用此流时,.mp3不会播放(或者可能正在播放,我听不到声音) 如果我没有指定任何音频流类型,则该文件将作为音乐流播放,这是我不想要的 注意:在我的设备中,每种类型(铃声、通知、呼叫、音乐)的音量都设置为满 我的代码 public MediaPlayer playRin

我正在开发一个音频通话应用程序,并尝试播放存储在
raw
文件夹中的
.mp3
文件

我想将此文件作为
铃声播放

为此,我使用了
mediaPlayer.setAudioStreamType(AudioManager.STREAM_环)

当我使用此流时,
.mp3
不会播放(或者可能正在播放,我听不到声音)

如果我没有指定任何
音频流类型
,则该文件将作为
音乐
流播放,这是我不想要的

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

我的代码

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

你在用什么设备?我测试过的大多数设备都很好,但我的Note8和Sony都有问题。