首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在ARImageAnchor上迅速播放Youtube视频

在ARImageAnchor上迅速播放Youtube视频
EN

Stack Overflow用户
提问于 2020-04-08 10:42:24
回答 1查看 403关注 0票数 3

我想在我的图像跟踪模块上播放一个youtube视频,就像图像跟踪时一样,然后在上面播放youtube视频。

有谁可以帮我?

代码语言:javascript
复制
private func makeVideo(with url: URL, size: CGSize) -> SCNNode? {

   DispatchQueue.main.async {
      self.player.frame = CGRect(x: 0, y: 0, width: 650, height: 400)
      self.player.autoplay = true
      self.player.loadPlayer()
   }

    // 4
    let avMaterial = SCNMaterial()
    avMaterial.diffuse.contents = player

    // 5
    let videoPlane = SCNPlane(width: size.width, height: size.height)
    videoPlane.materials = [avMaterial]

    // 6
    let videoNode = SCNNode(geometry: videoPlane)
    videoNode.eulerAngles.x = -.pi / 2
    return videoNode
}

import YoutubeKit

let player = YTSwiftyPlayer(playerVars: [.videoID("GJQsT-h0FTU")])

我试过这个,但是它在图像上显示一个黑色的屏幕,但是音频是播放的。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-04-14 20:14:51

这也许不能完全解决你的问题,但我希望它能在某些方面帮助你。

因此,除了图像检测之外,您还可以做的是显示UIWebView

“UIWebView”在iOS 12.0中被废弃:不再支持;请采用WKWebView

尽管Xcode会用类似于上面的消息警告您,但是WKWebView不会显示任何东西,所以您需要坚持使用WebView,直到它们修复问题为止。

因此,假设您已经计算出图像检测部分,并且能够在检测到的图像上定位和放置节点,则可以实现以下功能:

代码语言:javascript
复制
func displayWebSite(on rootNode: SCNNode, horizontalOffset: CGFloat) {
        DispatchQueue.main.async {

            // Open YouTube
            let request = URLRequest(url: URL(string: "https://youtu.be/7ehEPsrw1X8")!)

            // Define the size
            let webView = UIWebView(frame: CGRect(x: 0, y: 0, width: 650, height: 900))
            webView.loadRequest(request)

            // Set size
            let webViewPlane = SCNPlane(width: horizontalOffset, height: horizontalOffset * 1.45)
            webViewPlane.cornerRadius = 0.025

            // Define geometry
            let webViewNode = SCNNode(geometry: webViewPlane)
            // Set the WebView as a material to the plane
            webViewNode.geometry?.firstMaterial?.diffuse.contents = webView
            webViewNode.opacity = 0

            // Put a little in front to avoid merger with detected image
            webViewNode.position.z += 0.04

            // Add the node
            rootNode.addChildNode(webViewNode)
        }
    }

作为参考,您可以查看我的项目之一,查看该函数在项目中是如何工作的。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61098797

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档