2017-12-25 122 views
8

Tôi đang phát triển tiện ích của Chrome và tôi đang sử dụng youtube-iframe-api.Có cách nào để đặt giới thiệu đến youtube-iframe-api không?

Trình phát được tạo bởi các mã bên dưới có thể phát bất kỳ video nào ngoại trừ một số video có giới hạn (?) Chẳng hạn như vevo.

function onYouTubeIframeAPIReady() { 
    player = new YT.Player('player', { 
    height: '300px', 
    width: '800px', 
    videoId: 'RhU9MZ98jxo', 
    playerVars: { 
    'origin': 'https://www.youtube.com', 
    'wmode': 'opaque' 
    }, 
    events: { 
    'onReady': onPlayerReady, 
    'onStateChange': onPlayerStateChange 
    } 
}); 
}; 

Tôi đã thêm nguồn gốc và wmode vào playerVars vì tôi đã tìm thấy một số câu trả lời để họ có thể giải quyết vấn đề. Nhưng họ không làm việc.

tôi tự hỏi rằng nó có thể chơi video VEVO với máy nghe nhạc nhúng youtube (iframe)

+0

Tôi cũng đang cố gắng giải quyết vấn đề này cho cuối tuần qua và không có sẵn, mọi yêu cầu tiêu đề đều quay trở lại vị trí ban đầu là nguyên nhân khiến cho khối này xảy ra. – simon

+1

Tôi không nghĩ điều này là có thể. Tôi nghĩ rằng vấn đề nằm ở chỗ http referer được thiết lập bởi chính trình duyệt khi bạn nhúng iframe, nếu không nó sẽ là một sự vi phạm bảo mật. Tôi rất vui khi được sửa sai nếu có ai sẵn sàng giải quyết vấn đề này. Tôi đặt tiền thưởng. – simon

+0

Có thể họ đang sử dụng các tiêu đề chặn hình để ngăn bạn tải trong khung nội tuyến – charlietfl

Trả lời

5

tôi quản lý để phát một video VEVO trong w3schools' Try it yourself "bằng cách sử dụng các ví dụ được cung cấp trong tài liệu hướng dẫn youtube API:

<div id="player"> 
</div> 

<script> 
     // 2. This code loads the IFrame Player API code asynchronously. 
     var tag = document.createElement('script'); 

     tag.src = "https://www.youtube.com/iframe_api"; 
     var firstScriptTag = document.getElementsByTagName('script')[0]; 
     firstScriptTag.parentNode.insertBefore(tag, firstScriptTag); 

     // 3. This function creates an <iframe> (and YouTube player) 
     // after the API code downloads. 
     var player; 
     function onYouTubeIframeAPIReady() { 
     player = new YT.Player('player', { 
      height: '390', 
      width: '640', 
      videoId: 'tWQPbHXyoFQ', 
      events: { 
      'onReady': onPlayerReady, 
      'onStateChange': onPlayerStateChange 
      } 
     }); 
     } 

     // 4. The API will call this function when the video player is ready. 
     function onPlayerReady(event) { 
     event.target.playVideo(); 
     } 

     // 5. The API calls this function when the player's state changes. 
     // The function indicates that when playing a video (state=1), 
     // the player should play for six seconds and then stop. 
     var done = false; 
     function onPlayerStateChange(event) { 
     if (event.data == YT.PlayerState.PLAYING && !done) { 
      setTimeout(stopVideo, 6000); 
      done = true; 
     } 
     } 
     function stopVideo() { 
     player.stopVideo(); 
     } 
    </script> 

Điều gì sẽ xảy ra khi bạn cố gắng phát video vevo? bạn nhận được thông báo lỗi hoặc thông báo nào?

Là người tải lên youtube, bạn có tùy chọn từ chối video bị nhúng vào các trang web khác ngoài youtube, trong những trường hợp này, bạn không thể thực sự làm bất kỳ điều gì về nó.

+0

Lỗi xảy ra ở đây. Video này chứa nội dung từ VEVO. Nó bị hạn chế phát lại trên các trang web hoặc ứng dụng nhất định. Xem trên YouTube –

+0

Khi bạn làm điều này trên w3schools, liên kết giới thiệu của tiêu đề được đánh dấu là 'w3schools'. Khi bạn làm điều này tại địa phương, bản đồ của nó để localhost mà có khả năng sẽ có màu trắng hoặc danh sách đen bởi youtube. – simon

+0

Vâng ... đó sẽ là kẻ ngốc tại VEVO hạn chế nội dung của họ càng nhiều càng tốt. Nếu bạn không thể tìm thấy cách để Chrome giả mạo tiêu đề liên kết giới thiệu, bạn sẽ phải mở toàn bộ trang YouTube trong tab mới, có thể không phải là thứ bạn muốn. – BoffinbraiN

Các vấn đề liên quan