首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MediaManager音量控制在Xamarin.Forms中的应用

MediaManager音量控制在Xamarin.Forms中的应用
EN

Stack Overflow用户
提问于 2019-12-12 10:29:11
回答 2查看 1.3K关注 0票数 0

我正试图用MediaManager在Xamarin.Forms上为安卓和iOS制作一个无线电应用程序。我想在应用程序中包括一个音量滑块。我在XAML中这样实现了它:

代码语言:javascript
复制
 <Slider x:Name="slider" Grid.Column="1" Grid.ColumnSpan="3" Grid.Row="4" VerticalOptions="Center" ValueChanged="ChangeMediaVolume" Minimum="0" Maximum="10" Value="5" Margin="5"/>

对于后面的代码,我使用了以下方法:

代码语言:javascript
复制
private void ChangeMediaVolume(object sender, ValueChangedEventArgs args)
    {
        int value = (int)slider.Value;

        CrossMediaManager.Current.Volume.MaxVolume = 10;

        CrossMediaManager.Current.Volume.CurrentVolume = value;

    }

它在iOS模拟器中工作得很好,但是当我启动Android仿真程序时,它会崩溃并突出显示带有消息的CrossMediaManager项。

System.NullReferenceException被扔了。对象引用未设置为对象的实例。

我不太清楚如何修复它,也不知道为什么它适用于一个平台,而不是另一个平台。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-12-15 10:58:38

所以我似乎已经解决了这个问题。当我启动应用程序时,播放器不会启动,直到按下播放按钮。正因为如此,当应用程序启动时,就不会完全实例化了。这就是它返回null的原因。我捕捉到了异常,这样它就会加载,一旦玩家启动,一切都会很好地工作。

票数 0
EN

Stack Overflow用户

发布于 2019-12-12 12:18:09

是。这是一个插件问题,我得到了同样的结果,这是一个解决android的方法。您可以使用dependenceService来实现这一点。

1.创建一个接口。

代码语言:javascript
复制
public interface IControlVolume
{
    int setControlVolume(int value);
}

2.在android上实现。

代码语言:javascript
复制
[assembly: Dependency(typeof(MyControlVolume))]
namespace VideoPlay.Droid
{
class MyControlVolume : IControlVolume
{
    public int setControlVolume(int value)
    {
     var audioMgr =   (AudioManager)Forms.Context.GetSystemService(Context.AudioService);


        //set the volume
        audioMgr.SetStreamVolume(Android.Media.Stream.Music, value,VolumeNotificationFlags.PlaySound);
        //get current value
        int Volume = audioMgr.GetStreamVolume(Android.Media.Stream.Music);

        return Volume;

    }
  }
}

这是跑龙套。https://imgur.com/a/odE79sc

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59302530

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档