gpt4 book ai didi

xamarin - 在手机 xamarin 表单上播放标准/系统声音

转载 作者:行者123 更新时间:2023-12-04 00:57:27 25 4
gpt4 key购买 nike

是否有标准的跨平台方式可以在 Xamarin Forms iOS 和 Android 上播放 250 毫秒左右的“叮”声?

马克·沃德尔

最佳答案

您可以使用 DependencyService 在每个平台播放默认的系统通知声音。

创建 IPlaySoundService 界面 :

public interface IPlaySoundService 
{
void PlaySystemSound();
}

实现 PlaySystemSound 中的方法iOS 如下:
[assembly: Xamarin.Forms.Dependency(typeof(PlaySoundService))]
namespace AppCarouselViewSample.iOS
{
public class PlaySoundService : IPlaySoundService
{
public void PlaySystemSound()
{
var sound = new SystemSound(1000);
sound.PlaySystemSound();
}
}
}

实现 PlaySystemSound 中的方法安卓如下 :
[assembly:Xamarin.Forms.Dependency(typeof(PlaySoundService))]
namespace AppCarouselViewSample.Droid
{
public class PlaySoundService : IPlaySoundService
{
public void PlaySystemSound()
{
Android.Net.Uri uri = RingtoneManager.GetDefaultUri(RingtoneType.Ringtone);
Ringtone rt = RingtoneManager.GetRingtone(MainActivity.instance.ApplicationContext, uri);
rt.Play();
}
}
}

这是 instance的定义来自 主事件 :
namespace xxx.Droid
{
[Activity(Label = "AppCarouselViewSample", Icon = "@mipmap/icon", Theme = "@style/MainTheme", MainLauncher = true, ConfigurationChanges = ConfigChanges.ScreenSize | ConfigChanges.Orientation)]
public class MainActivity : global::Xamarin.Forms.Platform.Android.FormsAppCompatActivity
{
public static MainActivity instance { set; get; }
protected override void OnCreate(Bundle savedInstanceState)
{
TabLayoutResource = Resource.Layout.Tabbar;
ToolbarResource = Resource.Layout.Toolbar;

base.OnCreate(savedInstanceState);

instance = this;

Xamarin.Forms.Forms.SetFlags(new string[] { "CarouselView_Experimental", "SwipeView_Experimental", "IndicatorView_Experimental" });
Xamarin.Essentials.Platform.Init(this, savedInstanceState);
global::Xamarin.Forms.Forms.Init(this, savedInstanceState);
LoadApplication(new App());


}
...
}

然后他们会在每个平台播放默认的通知声音。您可以修改 SystemSoundID在 iOS 中满足您的需求。这里是 the Sound ID list .

关于xamarin - 在手机 xamarin 表单上播放标准/系统声音,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61300062/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com