Trigger.io 中的内联视频播放

Posted

技术标签:

【中文标题】Trigger.io 中的内联视频播放【英文标题】:Inline Video Playback In Trigger.io 【发布时间】:2013-12-27 16:37:46 【问题描述】:

有没有办法在不启动全屏的情况下播放视频? Trigger.IO API 显然没有设置它的选项,并且在 iPhone 上在 html5 视频标签中添加 'webkit-playsinline' 也是不够的,因为它需要将 'UIWebView' 的属性 'allowsInlineMediaPlayback' 设置为 '是的。

我希望 Trigger.IO 有某种选项来触发或关闭此属性...

附:看来Phone Gap已经支持了……

【问题讨论】:

【参考方案1】:

您可以轻松编写自己的 native module 来更改 Trigger.io 应用程序中的 WebView 属性。该函数可能看起来很像这样:

+ (void)enableInlineMediaPlayback:(ForgeTask*)task 
    if (NSClassFromString(@"WKWebView") && [[ForgeApp sharedApp] useWKWebView]) 
        // Handle new WebView 
        WKWebView *webView = (WKWebView*)[[ForgeApp sharedApp] webView];
        WKWebViewConfiguration *configuration = [[WKWebViewConfiguration alloc] init];
        configuration.allowsInlineMediaPlayback = YES;
        webView.configuration = configuration;
     else 
        // Handle old WebView
        UIWebView *webView = (UIWebView*)[[ForgeApp sharedApp] webView];
        webView.allowsInlineMediaPlayback = YES;
    
    [task success:nil];

此外,您需要将webkit-playsinline 属性添加到视频HTML 标记中。


编辑:我已调整代码以包含 ios8 和 WKWebView 的相关代码。

【讨论】:

现在只需要学习如何去做:] 我期待重点是不要进入本机代码和 Xcode... 我猜有这么多用例,如果将它们全部添加,它真的会炸毁 Trigger.io 核心。但我同意你的观点,这仍然是一种痛苦。 我做到了 :] 效果很好,感谢您以正确的方式指导我! 很高兴听到这个消息!还有许多其他有用的属性可以很容易地更改;) 你知道这段代码现在是否会随着新的 ios8 版本而改变?

以上是关于Trigger.io 中的内联视频播放的主要内容,如果未能解决你的问题,请参考以下文章

我可以在 UIWebView 内联(不是全屏)中播放 youtube 视频吗?

在 Ionic/Phonegap 中内联播放视频(webkit-playsinline 不工作)

Ionic 3 - 内联视频在 iOS 10 的本机播放器中全屏打开

完美解决微信video视频隐藏控件和内联播放问题

测量在 iOS 中内联播放的嵌入式 YouTube 视频的音频电平

Ionic 1.3 - iOS 10 beta 6 不能内联播放 mp4 视频