1
我正在开发一个应用程序,它使用xamarin.forms来播放声音。 对于创建一个接口“IAudioPlayer”DependencyService.Get <>()不起作用
namespace ClassLibrary.AudioPlayer
{
public interface IAudioPlayer
{
void PlayAudio(string filename);
}
}
而在机器人项目中,我遇到这样实现:
using System;
using Android.Media;
using Xamarin.Forms;
[assembly: Dependency(typeof(myApp.Droid.AudioPlayer_Android))]
namespace myApp.Droid
{
public class AudioPlayer_Android : global::Xamarin.Forms.Platform.Android.FormsAppCompatActivity, ClassLibrary.AudioPlayer.IAudioPlayer, AudioTrack.IOnPlaybackPositionUpdateListener
{
public void PlayAudio(string filename)
{
var player = new MediaPlayer();
var fd = global::Android.App.Application.Context.Assets.OpenFd(filename);
player.Prepared += (s, e) =>
{
player.Start();
};
player.SetDataSource(fd.FileDescriptor, fd.StartOffset, fd.Length);
player.Prepare();
}
public void OnMarkerReached(AudioTrack track)
{
throw new NotImplementedException();
}
public void OnPeriodicNotification(AudioTrack track)
{
throw new NotImplementedException();
}
}
}
现在,当我打电话DependencyService.Get<ClassLibrary.AudioPlayer.IAudioPlayer>();
它打破了,并说“法“ Get'找不到类型'Xamarin.Forms.DependencyService' 当我使用DependencyService.Get<>()
与另一个类型(例如本地数据库实现)它工作正常
任何想法我在做什么wr在这里?