jetzt Xamarin.forms hat API nicht klingen, so dass Sie DependencyService den folgenden Link Überprüfen Sie verwenden müssen, ist es für mich funktioniert gut:
https://www.codeproject.com/Articles/1088094/Playing-audio-mp-File-in-Xamarin-Forms
Wir benötigen eine Schnittstelle zu schaffen, die wird in plattformspezifischen Projekt umgesetzt werden, nannte ich es als IAudio.cs und der Code für das gleiche ist wie folgt:
using System;
namespace AudioPlayEx
{
public interface IAudio
{
void PlayAudioFile(string fileName);
}
}
Android Lösung:
using System;
using Xamarin.Forms;
using AudioPlayEx.Droid;
using Android.Media;
using Android.Content.Res;
[assembly: Dependency(typeof(AudioService))]
namespace AudioPlayEx.Droid
{
public class AudioService: IAudio
{
public AudioService()
{
}
public void PlayAudioFile(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();
}
}
}
iOS Lösung:
using System;
using Xamarin.Forms;
using AudioPlayEx;
using AudioPlayEx.iOS;
using System.IO;
using Foundation;
using AVFoundation;
[assembly: Dependency (typeof (AudioService))]
namespace AudioPlayEx.iOS
{
public class AudioService : IAudio
{
public AudioService()
{
}
public void PlayAudioFile(string fileName)
{
string sFilePath = NSBundle.MainBundle.PathForResource
(Path.GetFileNameWithoutExtension(fileName), Path.GetExtension(fileName));
var url = NSUrl.FromString (sFilePath);
var _player = AVAudioPlayer.FromUrl(url);
_player.FinishedPlaying += (object sender, AVStatusEventArgs e) => {
_player = null;
};
_player.Play();
}
}
}
Und schließlich werden wir den folgenden Code in unserem PCL/gemeinsames Projekt, um die Audiodatei abzuspielen verwenden.
DependencyService.Get<IAudio>().PlayAudioFile("MySong.mp3");
Getestet und Arbeiten. Hervorragende Dokumentation hier: https://developer.xamarin.com/guides/xamarin-forms/application-fundamentals/dependency-service/introduction/ – pollaris