首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

Android MediaPlayer 播放 YouTube 視頻失敗:無法直接播放網頁 URL,需提取真實流媒體地址或用 Intent 唤起 App

     編輯:程式設計綜合問答

直接用 MediaPlayer.setDataSource("https://www.youtube.com/watch?v=...") 會失敗,因 YouTube 網頁 URL 返回 HTML 而非視頻流。解決方案:提取真實流媒體 URL(複雜、易失效)或喚起 YouTube App/瀏覽器播放。

方案一:喚起系統播放器(推薦)

String url = "https://www.youtube.com/watch?v=SgGhtjKWLOE";
Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(url));
startActivity(intent); // 系統選擇 YouTube App 或瀏覽器播放

方案二:MediaPlayer 播放需直鏈

// 僅支持直接視頻流 URL(如 .mp4, .m3u8)
String directUrl = "https://example.com/video.mp4";
MediaPlayer mp = new MediaPlayer();
mp.setDataSource(directUrl);
mp.prepareAsync(); // 異步準備
mp.setOnPreparedListener(MediaPlayer::start);

為什麼 YouTube URL 失敗

  • 返回 HTML 頁面,非媒體流。
  • 簽名機制、加密流地址、反爬蟲策略導致無法直接獲取真實流 URL。
  • 違反 YouTube 服務條款(禁止非授權下載/播放)。

正規集成方案

  • YouTube Android Player API:官方 SDK,嵌入播放器,支持播放控制、廣告分成。
  • YouTube Data API:獲取視頻信息,配合 Player API 使用。

不折騰直鏈,官方 API 或喚起 App 才是正道。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved