精華區beta MacDev 關於我們 聯絡資訊
※ 引述《benjenq (Ben(憋))》之銘言: : 大家好: : 新年快樂... : 爬了一下本版的文( / 搜尋 Youtube) 找到了內嵌WebView播放Youtube的做法, : 也實作出來了。 : http://apiblog.youtube.com/2009/02/youtube-apis-iphone-cool-mobile-apps.html : 不過,在下找不到可以播放高畫質的選項, : 支援高畫質的影片,透過這方式播出來的畫面還是慘不忍睹 : (iPad 4 WIFI)。 : 想請問...這個問題有解嗎? 因為工作上需要所以也微研究了一下 在YouTube api: 首先要先知道幾件事 1.data api中提供你的link並不是實體檔案的link 2.iOS device 不支援flash 在iOS device上播放youtube的方法: 1.利用openURL方式將網址帶入透過開啟內建的瀏覽器來瀏覽 2.透過UIWebView寫內嵌方式的youtube 3.利用MPMoviePlayerController接youtube影片的實體連結 以上三種方法在iOS Device上的意義其實都是一樣的,只是容器不同而已 用openURL是叫起Browser來撥放,UIWebView和MPMoviePlayerController 則是差別在不同class能做的事的差異,但其實影像檔案來源都是一樣的 怎麼發現? 可以由這位larcus94大大所寫的class觀察到一些事 https://github.com/larcus94/LBYouTubeView 在mobile上可以從整張網頁去解析出實體影像的link 在Browser上可以透過fireBug去觀察網路活動也會找到該link 但這組link在mobile上和在Browser上會長的些微不太一樣 主要差異在itag這個標籤 這標籤是用來區分影像品質等級用的 在mobile上只有:18(高畫質),36(低畫質) 在Browser上有分:5 ,34 ,35 ,22 ,37 對應:240p,360p,480p,720p.1080p 看到這可能會感到很高興,組出Browser高畫質的link餵給iOS不就好了嗎? 但事情不是憨人所想...... 會區分成這樣就是因為實體檔案的影音編碼是不相同的 Browser上的實體檔案是.flv所以在不支援flash上的iOS Device也沒有辦法解析 所以以目前的規格上還是沒有辦法實現在iOS Device上撥放高畫質的影片 但如果做在andriod就可以用上述方法 ---------------------------------------------------------------------- 後記: 是有看到一些付費軟體有提供youtube高畫質的功能, 他們可能是把.flv的影音編碼給做進去,用Browser的link然後透過軟體解碼 或是他們是自己提供一個web服務,用自己的伺服器去做編碼的方式把資料餵給client -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 61.218.8.238