我有一个Xamarin Forms项目,我想要Android,iOS和WinPhone作为目标。 (现在我只看Android。)
我在播放音频时遇到问题,并认为我需要在每台设备上以不同的方式实现它。
我开始在共享项目的app.cs中添加此代码
#if __ANDROID__
MediaPlayer _player;
_player = MediaPlayer.Create(this, Resources.Raw.bear); // "Resources.Raw.bear");
_player.Start();
#endif
但发现我无法真正引用bear.wav,所以我想我必须为每个项目/平台添加bear.wav并分别处理播放代码。 (另见http://developer.xamarin.com/recipes/android/media/audio/play_audio/)
不幸的是,我找不到有关如何执行此操作的示例或任何文档。
http://developer.xamarin.com/guides/cross-platform/xamarin-forms/custom-renderer/是我能找到的最接近的,但它似乎高度关注渲染器。
我认为我会做的是在共享项目中定义一个抽象类(一些简单的类,只需使用 void play 方法),并使用它,并具有特定的实现每个平台项目。如何解决这个问题?
答案 0 :(得分:1)
看起来像 Write device platform specific code in Xamarin.Forms 回答这个问题 - 这不是一个Xamarin Forms问题,而是一个Visual Studio共享项目问题,可以通过创建一个接口/抽象类然后为每个平台实现并注入实现来解决。