我无法使用MediaManager的CrossMediaManager.Current.Play()
函数在iOS上完全播放本地视频。基本上,视频将开始播放,然后帧将冻结大约一秒钟,而音频将继续播放到结尾。媒体播放完毕后,videoView将跳至视频的最后一帧,并将其保留在那里(这是正常现象)。当我在Android上测试应用程序时,视频和音频可以正常播放。我的视频文件不到10秒,只有几MB。
这是我的代码示例,该示例处理将文件放置到CrossMediaManager可以访问的位置,然后让它调用播放功能。
// Copy the file out of Resources/Assets into the cache folder
using (var stream = await FileSystem.OpenAppPackageFileAsync("banana.mp4")){
// Get the location for the copy of the file
var cacheDirectory = FileSystem.CacheDirectory;
cacheDirectory += "/video.mp4";
using (Stream file = File.Create(cacheDirectory))
{
// Size of the buffer to use while writing
byte[] buffer = new byte[8 * 1024];
int len;
while ((len = stream.Read(buffer, 0, buffer.Length)) > 0)
{
file.Write(buffer, 0, len);
}
}
}
// Get the path to the video file
var videoClip = FileSystem.CacheDirectory + "/video.mp4";
// Play the video file
await CrossMediaManager.Current.Play("file://" + videoClip, MediaFileType.Video);