При использовании CrossMediaManager for Xamarin.Forms видео зависает на iOS (но не на Android). - PullRequest
0 голосов
/ 11 октября 2018

У меня проблемы с получением локального видео для полного воспроизведения на iOS с использованием функции MediaManager * CrossMediaManager.Current.Play().По сути, видео начнет воспроизводиться, а затем кадр замерзнет примерно на секунду, и звук будет продолжаться до конца.Как только мультимедиа заканчивается, videoView перейдет к последнему кадру видео и оставит его там (что является нормальным поведением).Когда я тестирую приложение на Android, видео и аудио воспроизводятся нормально.Мои видеофайлы имеют длину менее 10 секунд и всего несколько МБ.

Вот пример моего кода, который обрабатывает размещение файла в месте, доступном для 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);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...