iOS видео останавливается на немой - PullRequest
0 голосов
/ 31 января 2020

Я загружаю видео в WKWebView.

var video_el = document.createElement('video');
video_el.controls = true;
video_el.setAttribute('webkit-playsinline', 'webkit-playsinline');// Fix fullscreen problem on IOS 8 and 9
video_el.setAttribute('playsinline', 'playsinline');// Fix fullscreen problem on IOS 10
video_el.src = ' https://video.com/playlist.m3u8';
video_el.style.width = "720px";
video_el.style.height = "480px";
video_el.style.position = 'absolute';
video_el.style.top = 0;
video_el.style.left = 0;
video_el.autoplay = true;        
document.getElementById('app').appendChild(video_el);

Когда я пытаюсь воспроизвести видео, ничего не происходит.

Затем отключаю видео:

video_el.muted = true

Воспроизведение видео с отключением звука.

Затем отключение звука, и видео автоматически приостанавливается:

video_el.muted = false

Попытка нажать кнопку воспроизведения на элементах управления, видео или программным способом приводит к задержкам воспроизведения. вернуться к паузе.

video_el.play();

Вот также моя конфигурация WKWebView:

- (WKWebViewConfiguration*) createConfigurationFromSettings:(NSDictionary*)settings
    {
    WKWebViewConfiguration* configuration = [[WKWebViewConfiguration alloc] init];
    configuration.processPool = [[CDVWKProcessPoolFactory sharedFactory] sharedProcessPool];
    if (settings == nil) {
        return configuration;
    }

    configuration.allowsInlineMediaPlayback = YES;
    configuration.mediaPlaybackRequiresUserAction = NO;
    configuration.mediaTypesRequiringUserActionForPlayback = WKAudiovisualMediaTypeNone;
    configuration.suppressesIncrementalRendering = [settings cordovaBoolSettingForKey:@"SuppressesIncrementalRendering" defaultValue:NO];
    configuration.mediaPlaybackAllowsAirPlay = [settings cordovaBoolSettingForKey:@"MediaPlaybackAllowsAirPlay" defaultValue:YES];
    return configuration;
}

1 Ответ

0 голосов
/ 01 февраля 2020

Оказалось, преступник как-то связан с фоновым режимом. Я использовал фоновый плагин (https://github.com/katzer/cordova-plugin-background-mode), и когда он был включен, видео останавливалось после воспроизведения:

cordova.plugins.backgroundMode.enable();

Отключение этого параметра при воспроизведении видео решило проблему.

cordova.plugins.backgroundMode.disable();
...