Xamarin.iOS 应用中未显示 AVPlayerViewController
AVPlayerViewController not presenting in Xamarin.iOS app
我是 Xamarin.i 的新手,我正在尝试使用列表 Xamrin.iOS 中的 AVPlayerViewController 播放声音 view.Here 是我的按钮操作。
var playBtn = new Button () {
WidthRequest = 50,
HeightRequest = 50,
BackgroundColor = Color.Transparent,
Command = new Command(() =>{
DependencyService.Get().PlayAudioFile("Audio.mp3");
})
playBtn 是自定义单元格 button.Cell 数据使用 XAML 填充
"PlayAudioFile" 是一个接口,是平台 specific.i 目前正在将其用于 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 没有播放音频,也没有在视图中呈现 controller.What 我做错了吗?
提前致谢。
我发现一个问题是您创建的方式 url。您正在使用包中的文件,这意味着它的本地文件。
使用 NSUrl.FromFilename(sFilePath)
而不是 NSUrl.FromString (sFilePath);
NSUrl.FromString 将创建 url,如 http://yourfolder/subfolder/fielname.extension
,这在您的情况下是无效的。而 NSUrl.FromFilename 会像 file://yourfolder/subfolder/filesname.extension
一样创建 url。这对你的情况有效。
我是 Xamarin.i 的新手,我正在尝试使用列表 Xamrin.iOS 中的 AVPlayerViewController 播放声音 view.Here 是我的按钮操作。
var playBtn = new Button () {
WidthRequest = 50,
HeightRequest = 50,
BackgroundColor = Color.Transparent,
Command = new Command(() =>{
DependencyService.Get().PlayAudioFile("Audio.mp3");
})
playBtn 是自定义单元格 button.Cell 数据使用 XAML 填充 "PlayAudioFile" 是一个接口,是平台 specific.i 目前正在将其用于 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 没有播放音频,也没有在视图中呈现 controller.What 我做错了吗? 提前致谢。
我发现一个问题是您创建的方式 url。您正在使用包中的文件,这意味着它的本地文件。
使用 NSUrl.FromFilename(sFilePath)
而不是 NSUrl.FromString (sFilePath);
NSUrl.FromString 将创建 url,如 http://yourfolder/subfolder/fielname.extension
,这在您的情况下是无效的。而 NSUrl.FromFilename 会像 file://yourfolder/subfolder/filesname.extension
一样创建 url。这对你的情况有效。