2016-06-21 8 views
2
スウィフトは

基本的に私はココアスウィフトにAVPlayerを使用してM3U8(HLSライブストリーム)を再生しようとしています。私は言語に比較的新しいですので、基本的にローカルのビデオファイルを再生するためのいくつかのexample codeをつかんで、ライブストリームを再生するには、それを修正しようとした...しかし、その代わりにこれを取得:遊ぶHLSココアOS X AVPlayer中(M3U8) -

http://i.stack.imgur.com/bU9GM.png

これは私が得たものですこれまでのところ(コメント行は、作業を行うローカルファイルを、再生するためです):

import Cocoa 
import AVKit 
import Foundation 
import AVFoundation 

class ViewController: NSViewController { 

    @IBOutlet weak var playerView: AVPlayerView! 

    var videoPlayer:AVPlayer! 

    override func viewDidLoad() { 
     super.viewDidLoad() 

     //let path = NSBundle.mainBundle().pathForResource("sample", ofType: "mov") 
     //var fileURL = NSURL(fileURLWithPath: path!) 
     let fileURL = NSURL(string: "http://qthttp.apple.com.edgesuite.net/1010qwoeiuryfg/sl.m3u8") 
     let avAsset = AVURLAsset(URL: fileURL!, options: nil) 

     let playerItem = AVPlayerItem(asset: avAsset) 
     videoPlayer = AVPlayer(playerItem: playerItem) 
     playerView.player = videoPlayer 
     videoPlayer.play() 
    } 

    override var representedObject: AnyObject? { 
     didSet { 
      // Update the view, if already loaded. 
     } 
    } 
} 

このコードを動作させる、または右方向に私をリードする方法上の任意のヘルプははるかに高く評価されます!

答えて

2

私はコンソールでこのエラーを得たプロジェクトを立ち上げたとき、私は

(私たちは:)今、それを呼び出しを開始しなければならないとして、またはMacOSの)新しいOS Xプロジェクトにコードを貼り付けてみました:

2016-06-21 09:09:27.860 Videoplayer[2494:169209] App Transport Security has blocked a cleartext HTTP (http://) resource load since it is insecure. Temporary exceptions can be configured via your app's Info.plist file. 
コンソールが有効になっている場合、私は知らない

は、それはあなたがデバッグ領域が有効になっている提供、画面の下の部分です。

あなたが有効になってデバッグ領域を持っていない場合、あなたはそれがXcodeの

enable debug area

の上で有効にしてあなたがしている、あなたにも、コンソールを示していることを確認する必要がありますXcodeのの下部で行わ:

​​

OK、今あなたがエラーを見ることができ、それを修正する方法:)

このメッセージは、基本的にAppleがHTTPへのアクセスをブロックしたことを示しています。これはOS X 10.11およびiOS 9で導入されましたが、無効にすることができます。

それはコンソールに言うように:

Temporary exceptions can be configured via your app's Info.plist file.

これはあなたのinfo.plistファイルに新しいキーを追加する必要があることを意味します。

あなたはこのようになります「生」のplistデータ、としてそれを追加することができます

<key>NSAppTransportSecurity</key> 
<dict> 
    <key>NSAllowsArbitraryLoads</key> 
    <true/> 
</dict> 

それとも、それはこのようになりますplistのエディタでそれを追加することができます

editing plist

This questionと偉大な答えは私がこれを行う場合は

、私はあなたのコードの実行を取得することができていたり、WATCできるというプロセス、より良い説明しますhライブストリームなので、これもあなたに役立つことを願っています。

+0

うわーそんなにありがとう!それが問題であることを認識していたはずです – user3063455

+0

あなたは大歓迎です。それは今あなたのためにうれしいです。 – pbodsk

+0

@pbodsk - Iコードステートメントに、このエラーを取得してみましょうavAsset = AVURLAsset(URL:my_url!オプション:ゼロ) - 「NSURL」は「URL」に暗黙的に変換できません。明示的に変換するために「as」を使用することを意味しましたか?なぜあなたたちはそのエラーを取得していないが、私は何のための任意のアイデアですか? –

関連する問題