【问题标题】:AVPlayerViewController not presenting in Xamarin.iOS appAVPlayerViewController 未出现在 Xamarin.iOS 应用程序中
【发布时间】:2016-09-24 13:44:38
【问题描述】:

我是 Xamarin 的新手。我正在尝试使用 Xamrin.iOS 中的 AVPlayerViewController 从列表视图播放声音。这是我的按钮操作。

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 没有播放音频,也没有在视图控制器中呈现。我做错了什么。 提前致谢。

【问题讨论】:

    标签: xamarin xamarin.ios cross-platform xamarin.forms avplayerviewcontroller


    【解决方案1】:

    我看到这里的一个问题是您创建 url 的方式。您正在使用 bundle 中的文件,这意味着它的本地文件。 使用NSUrl.FromFilename(sFilePath) 而不是 NSUrl.FromString (sFilePath);

    NSUrl.FromString 将创建像 http://yourfolder/subfolder/fielname.extension 这样的 url,这在你的情况下是无效的。而 NSUrl.FromFilename 将创建像 file://yourfolder/subfolder/filesname.extension 这样的 url。这对您的情况有效。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-06-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-10-24
      • 1970-01-01
      • 2017-02-11
      • 2023-03-20
      相关资源
      最近更新 更多