您可以推荐哪种工具链来编写嵌入到Web浏览器中的自定义多媒体播放器?

And*_*hko 1 browser flash applet activex media-player

我要写一个自定义多媒体播放器.它将嵌入到Web浏览器中,并通过SSL连接从服务器接收数据.

所需的功能是:

  • MPEG4视频和不同的VoIP音频解码(例如G.711或G.729)
  • 自定义控件
  • 波形表示(或只是灵活的绘图API)

我想到了Adobe Flash(或Flex).但我对这项技术知之甚少.我最关心的是多媒体解码.

您能为这个项目推荐Adobe Flex或其他任何东西吗?我可以通过这种方式遇到什么陷阱?

编辑:

Flash Player不支持MPEG4或VoIP音频编解码器.因此,要使用Flash,我需要设置多媒体流服务器并将我的媒体转码为支持的格式(H.264/AAC).它比我预期的解决方案成本更高.

我应该检查哪些替代方案?Java小程序?的ActiveX?Windows媒体播放器?

tax*_*ian 5

好吧,你可以使用Silverlight做到这一点; Silverlight具有允许您为其提供原始H.264帧的接口,它将显示它们.事实上,netflix的在线流媒体视频播放器是用silverlight编写的.如果这样可行,那可能是你最好的选择.

如果这不起作用,并且Flash不会这样做,那么你可能会尝试java(不知道是否可行或不知道,但我的猜测是在许多客户端机器上缺少java将是一个障碍)或编写自己的插件/ activex控件.

除了繁重的学习曲线之外,ActiveX控件的主要挑战是您必须以某种方式将其安装在客户端计算机上.当你谈论媒体播放器时,这更加棘手,因为那时你可能需要处理声音驱动和视频渲染; 为了呈现高质量的视频,你需要使用硬件加速,这意味着你需要使用directx和/或opengl,假设你正在瞄准windows.此外,ActiveX控件仅适用于IE,而不适用于任何其他Web浏览器.

但是,如果您确实选择了插件/ activex路线,我强烈建议您查看FireBreath ; FireBreath是一个浏览器插件框架和抽象,用于编写跨平台和跨浏览器插件.Flash和Silverlight本身就是activex控件和npapi插件,我知道至少有两个使用FireBreath编写的媒体播放器.这将是从插件角度处理问题的最简单方法,但您必须使用C++.不要误会我的意思 - 即使使用FireBreath,这也不是一件容易的事,但至少它解决了许多在浏览器中托管的最棘手的部分.

插件的主要优点是你几乎可以做任何事情 - 使用硬件渲染,访问文件系统等.这是最灵活的选择.插件的主要缺点是你几乎可以做任何事情 - 崩溃浏览器,删除文件,如果你不小心就打开安全漏洞等等.

我想最后的选择是使用ajax请求,在javascript中进行解码,然后渲染到Chrome中的Web画布,但我猜这仍然不太现实=]

祝你好运,希望有所帮助.