使用CrossMediaManager for Xamarin.Forms时,视频在iOS(但不是Android)上冻结

时间:2018-10-11 18:39:50

标签: ios xamarin video xamarin.forms

我无法使用MediaManagerCrossMediaManager.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);

0 个答案:

没有答案