最近,在用flex做个flv的播放器,在这个播放器中需要提供按空格键来暂停/播放视频的功能,当flv播放器处于全屏状态下,比较容易实现响应空格键,来实现视频的暂停/播放功能。但是,当flv播放器处于正常状态下,要实现响应空格键操控播放的话,就要费点周折了。
具体实现方式如下:
1、在加载播放器的页面中,实现对键盘事件的监听(这个比较容易做)
2、在播放器中的使用ExternalInterface.addCallback这个方法,通过这个方法可以实现javascript调用播放器的函数,从而可以控制暂停/播放flv。
3、在网页的键盘事件响应函数中,判断如果是空格键的ACSII(32)的话,就调用刚才通过ExternalInterface.addCallback设置的函数去调用播放器的控制视频暂停/播放的函数。
4、基本上通过上面三步就实现了,在播放器在正在状态下,按空格键来控制暂停/播放。但是,有个问题就是,当按空格键的时候,网页也会翻一屏。这样的用户体验就不好,所以,要解决这个问题的话,就是需要了解javascript的事件机制,只需要在键盘事件的响应函数中,使用event.returnValue = false;这样按空格键的事件就到此为止,不再冒泡给上一级来处理,这样就解决了。
另外,在flv播放器处于全屏状态下,要响应键盘事件,需要使用stage.addEventListener来增加侦听事件。开始我使用其他方式,死活就不响应,后来发现应该用stage这个对象,来增加侦听事件。