Chinaunix首页 | 论坛 | 博客
  • 博客访问: 6640495
  • 博文数量: 915
  • 博客积分: 17977
  • 博客等级: 上将
  • 技术积分: 8846
  • 用 户 组: 普通用户
  • 注册时间: 2005-08-26 09:59
个人简介

一个好老好老的老程序员了。

文章分类

全部博文(915)

文章存档

2022年(9)

2021年(13)

2020年(10)

2019年(40)

2018年(88)

2017年(130)

2015年(5)

2014年(12)

2013年(41)

2012年(36)

2011年(272)

2010年(1)

2009年(53)

2008年(65)

2007年(47)

2006年(81)

2005年(12)

分类: Android平台

2017-11-15 22:26:21

音频在移动应用中有很多用途。对你的应用程序来说,声音是必不可少的;他们可以通知重要事件的用户,或者让你的应用程序对视障用户开放。我们也可以使用声音来帮助我们的应用程序传达情绪、意图或感觉。事实上,许多公司包括歌曲或声音作为其品牌的一部分。

包括跨平台应用程序的音频意味着调用特定于平台的代码。UWP,Android,和iOS都拥有强大的,但不同的API来管理和播放声音。作为跨平台的C #开发者,我们希望选择一个通用的API,可以从共享位置加载音频数据。

Xam.Plugin.SimpleAudioPlayer

开源simpleaudioplayer插件提供了一个跨平台的C # API,可用于加载和播放音频文件在Windows UWP,Xamarin。Android,xamarin.ios,xamarin.tvos,和Xamarin.mac项目。

xam.plugin.simpleaudioplayer可从nuget.org。开始的时候,添加NuGet包到每个平台的具体项目要支持。如果您正在使用来自共享库(如.NET标准库或PCL)的插件,请将该包添加到库中。

可以向特定于平台的项目或共享库添加音频文件。如果存储在特定于平台的项目中,这些文件将位于标准位置。Windows UWP和Android,放置文件的文件夹的生成操作设置为内容和Android资产分别。

对于iOS、MacOS和TVOS,将音频文件在资源文件夹,确保生成操作设置为bundleresource。

音频文件然后按名称加载:

点击(此处)折叠或打开

  1. var player = Plugin.SimpleAudioPlayer.CrossSimpleAudioPlayer.Current;
  2. player.Load("intro_sound.mp3");


在从共享库加载音频时,将生成操作设置为嵌入资源。

存储在共享库中的文件在装入插件之前被加载到流中:

点击(此处)折叠或打开

  1. var assembly = typeof(App).GetTypeInfo().Assembly;
  2. Stream audioStream = assembly.GetManifestResourceStream("YourSharedAssemblyName." + "yoursound.wav");
  3.  
  4.  
  5. var player = Plugin.SimpleAudioPlayer.CrossSimpleAudioPlayer.Current;
  6. player.Load(audioStream);


您通过调用Play方法开始播放。

点击(此处)折叠或打开

  1. player.Play();


simpleaudioplayer提供方法和属性来控制音频播放,包括停止、暂停的能力,寻求,设置音量和平衡。

同时播放多个声音

如果你需要玩一个以上的声音,simpleaudioplayer插件提供了一个创建对象的工厂方法isimpleaudioplayer。每个对象都可以独立加载和播放音频。

点击(此处)折叠或打开

  1. var alertSound = CrossSimpleAudioPlayer.CreateSimpleAudioPlayer();
  2. var warningSound = CrossSimpleAudioPlayer.CreateSimpleAudioPlayer();
  3. var clickSound = CrossSimpleAudioPlayer.CreateSimpleAudioPlayer();
  4. var submitSound = CrossSimpleAudioPlayer.CreateSimpleAudioPlayer();
  5.  
  6. alertSound.Load(...);
  7. warningSound.Load(...);
  8. ...
  9. alertSound.Play();
  10. ...


对于同步播放的一个例子,看跨平台druminator示例应用程序在这里。

simpleaudioplayer是开源的;如果你想要的功能,你可以在GitHub上的文件的一个问题,或者更好的,做出的改变和提交pull请求。

延伸阅读

Xamarin和Xamarin。形式有一个很好的插件社区。找到其他伟大的插件,访问。您甚至可以找到其他音频插件来执行任务,例如将文本转换成语音和录制音频。

如果你在学习更多关于特定平台的API来播放音频感兴趣,我们在developer.xamarin.com优秀的文档。看看druminator APP所建,在这里观看Xamarin大学研讨会。

和学习更多关于Xamarin开发,一定要看看我们的免费课程可在university.xamarin.com。更好的是,注册访问所有Xamarin大学的自我导向学习课程免费试用!

阅读(3737) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~