【问题标题】:Mute sound in Xamarin.iOSXamarin.iOS 中的静音
【发布时间】:2018-05-24 13:02:04
【问题描述】:

我正在使用 Xamarin.iOS 开发 MediaPlayer,我找不到在单击按钮时静音的方法,在 Android 中是这样的:

AudioManager amanager = (AudioManager)GetSystemService(Context.AudioService);
amanager.SetStreamVolume(Stream.Music, 0, VolumeNotificationFlags.RemoveSoundAndVibrate);

任何帮助将不胜感激。

【问题讨论】:

    标签: c# ios xamarin audio xamarin.ios


    【解决方案1】:

    如果您想要静音的声音是您自己的声音/音乐,您可以在 iOS 应用本身中播放并播放,您可以使用 AVAudioPlayer,如下所示:

    AVAudioPlayer _player;
    
    public void PlayMusic(string file)
    {
        NSError error;
        _player = new AVAudioPlayer(new NSUrl(file + ".mp3"), "mp3", out error);
        if (error != null)
        {
            Debu.WriteLine("Error in PlayTheme, {0}: {1}", file, error.LocalizedDescription);
            return;
        }
        _player.Volume = 0.6f;
        _player.NumberOfLoops = -1;
        _player.Play();
    }
    
    public void StopMusic()
    {
        if (_player != null)
        {
            _player.Stop();
            _player.Dispose();
            _player = null;
        }
    }
    

    此外,根据您想要控制音频的方式,您可以改用MPMusicPlayerController.ApplicationMusicPlayer。这是关于它的Apple doc

    但是,如果您希望通过使用私有 api 将 iOS 系统音频本身静音,则它是 technically possible,但这样做我认为当您尝试在应用商店中发布您的应用时,Apple 不会批准您的应用.

    【讨论】:

    • 谢谢你的回答,我正在使用 XamarinMediaManager 播放音频,他们还没有实现静音功能,你认为像 MPMusicPlayerController.ApplicationMusicPlayer.Volume = 0 这样的东西可以解决问题吗?
    • 从我在 iOS 端看到的 XamarinMediaManager 似乎正在创建一个 AVPlayer 来播放它的音频,所以你可以做的是投射 var player = MediaManager.AudioPlayer as AVPlayer 并设置音量.不过,您可以停止或暂停音乐而不是静音。
    • 谢谢@Nick,MPMusicPlayerController.ApplicationMusicPlayer.Volume = 0 确实做到了 :))
    • 很高兴能帮上忙。我之前没有使用过 XamarinMediaManager 插件,所以我不知道它用于音频的特定平台实现,看起来 iOS 上的 MediaManager 确实使用了内置的MPMusicPlayerController
    • 我会尝试 MPVolumeView 然后developer.apple.com/documentation/mediaplayer/… 这是否真的适用于 XamarinMediaManager 是一个不同的问题。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多