2012-12-01 50 views
6

有谁知道是否有方法让Airplay在使用自定义控件的html5视频上工作?这是非常重要的部分,我意识到如果您使用内置的html5控件,只需将x-webkit-airplay =“allow”属性添加到元素即可。但我的视频播放器使用定制的控件。Airplay与自定义html5控件

看来,Safari会穿上内置的HTML5控制的Airplay按钮,但有什么办法,如果我不使用内置的控制做到这一点?这里是我写的html5播放器的链接。请注意,在底部的控制都是我自己:

http://pluralsight.com/training/Player?author=keith-brown&name=aspdotnet-security&mode=live&clip=0&course=aspdotnet-security

谢谢!

+0

你应该将视频添加到tutspuls.com他们都还不错 – TheCrazyProfessor

回答

9

好消息在这里!该功能已在Safari 9中实现。

Safari 9.0允许您为支持JavaScript AirPlay的HTML5媒体创建自定义控件。使用Safari的WebKitPlaybackTargetAvailabilityEvent来检测Airplay可用性,然后添加您自己的控件以将音频和视频流式传输到AirPlay设备。

通过。 What's New in Safari 9

下面是HTML5 video и кнопка для AirPlay

// Detect if AirPlay is available 
// Mac OS Safari 9+ only 
if (window.WebKitPlaybackTargetAvailabilityEvent) { 
    video.addEventListener('webkitplaybacktargetavailabilitychanged', function(event) { 
     switch (event.availability) { 
      case "available": 
       AirPlayButton.show(); 
       break; 
      default: 
       AirPlayButton.hide(); 
     } 
     AirPlayButton.on('click', function() { 
      video.webkitShowPlaybackTargetPicker(); 
     }); 
    }); 
} 
+1

这应该是被接受的答案 – Endless

1

可悲的是苹果公司还没有实现Airplay的JavaScript事件调用,这主要是因为当你在你本地的QuickTime控制的AirPlay使用AirPlay的提示通过AirPlay的设备与附近的用户。目前,没有一个特定于Safari的JS实现可以在您的内容中提取这些数据,并根据可用的内容创建按钮。

由于2013年2月,你可以在HTML5中指定的AirPlay的唯一的事情是,如果你想显示或不显示AirPlay的控制。

https://developer.apple.com/library/safari/#documentation/AudioVideo/Conceptual/AirPlayGuide/OptingInorOutofAirPlay/OptingInorOutofAirPlay.html

您可以提交一个bug与苹果,如果这是你想在未来的版本中一个特点: https://bugreport.apple.com/

希望这有助于。

0

一个例子,我们可以检查webkitcurrentplaybacktargetiswirelesschanged事件赶上关闭AirPlay的设备:

 this.on(videoEl, 'webkitcurrentplaybacktargetiswirelesschanged', this.checkWireles);