斯威夫特:从互联网播放视频

时间:2015-10-23 02:05:22

标签: ios swift video video-streaming

我正在尝试创建一个用Swift编写的iOS应用程序,它可以播放来自互联网的视频。它可以是来自流媒体链接或YouTube网址的视频,无论您认为哪种更容易。如果可能的话,我个人更喜欢我的作品的流媒体链接。

我的目标是能够播放用户可以浏览的互联网视频,并在用户选择时暂停并继续播放。基本的视频播放器控件。

在android中,我可以使用此流媒体视频成功从archive.org流式传输:https://archive.org/download/ksnn_compilation_master_the_internet/ksnn_compilation_master_the_internet_512kb.mp4

然而,在iOS方面,我遇到了一些问题。

以下是我尝试播放该流媒体视频的内容:

在这次尝试中,我得到一个黑屏,带有划掉的播放箭头

import UIKit
import AVKit
import AVFoundation
import MediaPlayer

class MediaVideo1: UIViewController {

override func viewDidLoad() {
    super.viewDidLoad()

    var url:NSURL = NSURL(string: "https://archive.org/download/ksnn_compilation_master_the_internet/ksnn_compilation_master_the_internet_512kb.mp4")!
    let player = AVPlayer(URL: url)
    let playerController = AVPlayerViewController()

    playerController.player = player
    self.addChildViewController(playerController)
    self.view.addSubview(playerController.view)
    playerController.view.frame = self.view.frame

    player.play()
}

override func didReceiveMemoryWarning() {
    super.didReceiveMemoryWarning()
    // Dispose of any resources that can be recreated.
     }
}

我尝试播放YouTube视频:

在这次尝试中,我在ViewController中使用了WebView。当我运行应用程序时,我得到一个视频缩略图,但是当我点击它时,我收到错误消息"发生了错误,请稍后重试"这段代码会弹出所有时间。

import UIKit
import MediaPlayer

class MediaVideo1: UIViewController {

@IBOutlet var webView: UIWebView!

override func viewDidLoad() {

    var html = "<html><body><iframe src=\"http://www.youtube.com/embed/aGDE519ygkw\" width=\"560\" height=\"315\" frameborder=\"0\" allowfullscreen></iframe></body></html>"

    webView.loadHTMLString(html, baseURL: nil)

    webView.allowsInlineMediaPlayback = true

    let embededHTML = "<html><body><iframe src=\"http://www.youtube.com/embed/aGDE519ygkw?playsinline=1\" width=\"560\" height=\"315\" frameborder=\"0\" allowfullscreen></iframe></body></html>"

    webView.loadHTMLString(html, baseURL: NSBundle.mainBundle().bundleURL)

    }

}

我对这个方向并不十分满意,主要是因为WebView在将它放入ViewController时非常精彩。我已经做了很多关于测量和保持纵横比的工作,但它从未看起来&#34;正确&#34;。

我见过一个可以在GitHub上下载的YouTube图书馆,但它不是用swift写的,看起来很头疼。

这些问题促使我走向流媒体理念&#34;代替。

编辑: 我被告知我的帖子可能是另一个帖子的副本。但是,我仍然看到错误。

How to embed a Youtube video into my app?

我看到&#34;警卫&#34; &#34;否则{return}&#34;和&#34; wv.loadrequest&#34;行

import UIKit

class ViewController: UIViewController {
// create an outlet for your webview 
@IBOutlet weak var wv: UIWebView!
override func viewDidLoad() {
    super.viewDidLoad()
    // load your you tube video ID
    loadYoutube(videoID: "oCm_lnoVf08")
}
override func didReceiveMemoryWarning() {
    super.didReceiveMemoryWarning()
}
func loadYoutube(videoID videoID:String) {
    // create a custom youtubeURL with the video ID
    guard
        let youtubeURL = NSURL(string: "https://www.youtube.com/embed/\(videoID)")
        else { return }
    // load your web request
    wv.loadRequest( NSURLRequest(URL: youtubeURL) )
    }
}

有人还使用确切的代码在线程中发布了一个dropbox文件,我遇到了同样的问题。

同样,我觉得我应该更倾向于流媒体方面而不是YouTube方面。

0 个答案:

没有答案