AVPlayerViewController не представлен в Xamarin.iOS приложение

я новичок в Xamarin.я пытаюсь воспроизвести звук с помощью AVPlayerViewController в Xamrin.iOS из списка.Вот моя кнопка действие.

var playBtn = new Button () {
WidthRequest = 50,
HeightRequest = 50,
BackgroundColor = Color.Transparent,
Command = new Command(() =>{
DependencyService.Get().PlayAudioFile("Audio.mp3");
})

playBtn пользовательская кнопка ячейки.Данные ячейки заполняются с помощью XAML
«PlayAudioFile» — это интерфейс, специфичный для платформы.в настоящее время я использую его для iOS.
Вот мой код iOS UIViewController

public void PlayAudioFile(string fileName)
{
string sFilePath = NSBundle.MainBundle.PathForResource(Path.GetFileNameWithoutExtension(fileName), Path.GetExtension(fileName));
var url = NSUrl.FromString (sFilePath);
var player = new AVPlayer (url);
player.Rate = 0.25f;
var playerVC = new AVPlayerViewController();
playerVC.Player = player;
playerVC.AllowsPictureInPicturePlayback = true;
playerVC.View.Frame = this.View.Frame;
player.Play ();
this.PresentViewController (playerVC, true, null);
}

Но AVPlayerViewController не воспроизводит аудио и не представляет его в виде контроллера.Что я делаю не так.
Спасибо заранее.

1 ответ

  1. Я вижу, что одна проблема здесь заключается в том, как вы создаете url. Вы используете файл из пакета, что означает его локальный файл.
    использовать NSUrl.FromFilename(sFilePath)вместо NSUrl.FromString (sFilePath);

    NSUrl.FromString создаст urlhttp://yourfolder/subfolder/fielname.extension-адрес, который является недопустимым в вашем случае . тогда как NSUrl.FromFilename создаст url like file://yourfolder/subfolder/filesname.extension. что действительно в вашем случае.