我正在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;
}
上述解决方案是关闭并重新打开该应用程序。我在Safari中进行调试,每当我要测试更改时,我都会刷新页面/窗口。这某种程度上导致了上述问题。