首页 > 解决方案 > 通过听筒播放时音量按钮无效

问题描述

在我的 Xamarin Forms Android 应用程序中,我通过耳机而不是普通扬声器发送音频。我正在做类似的事情:

myMediaPlayer.SetAudioAttributes(new AudioAttributes.Builder().SetLegacyStreamType(Stream.VoiceCall).Build());

以上不推荐使用的版本是

myMediaPlayer.SetAudioStreamType(Stream.VoiceCall);

无论哪种方式,这似乎都有效(不过,如果有更好的方法,请告诉我)。但是,我无法控制音量。声音仅从耳机正确发出,但音量恒定,忽略了我的音量键按下(尽管音量计显示在屏幕上随着按下按钮而上升和下降)。...(为澄清起见,我不是试图以编程方式控制音量,我只是希望设备能够按照预期调整音量。)

有什么帮助吗?

更新

我也试过这段代码:

myMediaPlayer.SetAudioAttributes(new AudioAttributes.Builder().SetContentType(AudioContentType.Music).SetUsage(AudioUsageKind.VoiceCommunication).Build());

我有两个目标:

  1. 仅通过耳机播放(或耳机,如果已连接)
  2. 能够控制音量(我认为这是给定的)

更新代码示例

以下内容将通过听筒播放,但不会改变音量。

        public void Play(string url)
        {
            var myMediaPlayer = new MediaPlayer();
            myMediaPlayer.SetDataSource(url);

            if (Build.VERSION.SdkInt >= BuildVersionCodes.Lollipop)
                myMediaPlayer.SetAudioAttributes(new AudioAttributes.Builder().SetContentType(AudioContentType.Music).SetUsage(AudioUsageKind.VoiceCommunication).Build());
            else
                myMediaPlayer.SetAudioStreamType(Stream.VoiceCall);

            myMediaPlayer.Prepare();
            myMediaPlayer.Start();
        }

标签: xamarinxamarin.formsxamarin.android

解决方案


推荐阅读