3

我想编写一个应用程序,将 MP3 从服务器流式传输到美国三大智能手机操作系统(iPhone、Blackberry 和 Android)中的任何一个。

这是我关心的权衡:如果我在本地编写应用程序,它将带来最佳的用户体验,并让我能够根据需要添加更多功能,但我将拥有 3 个独立的代码库,这违反了干燥原则。

如果我使用其中一个框架用 Javascript/HTML 编写它(例如Rhomobile Rhodes),那么我有一个适用于所有主要平台的代码库,所以我没有违反 DRY 并且开发过程在这方面更简单,但是a)用户体验会受到影响,b)我用SoundManager在iPhone上用Javascript播放MP3文件做了一些简单的测试,它立即开始糟糕(例如“酷,我可以玩”之后的第二阶段实验MP3”是“我无法访问 ID3 标签?这太糟糕了。”)。

我想知道是否有人在开发多个移动平台方面有经验可以证实或否定我的印象:使用 Javascript 和 HTML 进行跨平台开发是否可行(特别是对于多媒体应用程序)?还是“开发和维护三个独立的本机代码库”是要走的路?

提前致谢。

编辑:这个问题假设我必须作为一个应用程序来做这个。我知道只提供 mp3 并让用户 iPhone/Android/Blackberry Media Player 处理它们可能会好得多,但出于我的目的,这些解决方案超出了这个问题的框架。

4

3 回答 3

4

在为 Pandora(主要是 BlackBerry)开发了多个移动应用程序之后,我可以告诉您,如果不将每个应用程序都作为原生应用程序,那么要以我们想要的方式获得用户体验将是非常困难的(如果不是不可能的话)。跨平台框架可能适用于“典型”的移动应用程序,该应用程序在一些树形菜单中导航、显示信息、对后端服务进行一些调用等。但我还没有看到一个公开全面的多媒体 API 的框架。我也能理解为什么——每个平台在播放媒体时肯定都有其怪癖。即使像在播放列表中预加载下一首曲目这样简单的事情也需要自定义代码。或者选择将音频路由到哪个音频路径(蓝牙?耳机?)在 BlackBerry 上,流式音频具有特殊的网络要求,因为您可以 t 使用默认的 BIS 或 BES 传输 - 它必须通过 Direct TCP、WAP2 或 Wi-Fi(如果可用)。再说一次,更多的自定义代码。

If it's any consolation, it is possible to share a bit of code between BlackBerry and Android - i.e. business logic that does not use native APIs. Since BlackBerry uses J2ME it is just a subset of the J2SE that Android uses.

于 2010-10-15T19:20:02.023 回答
2

我会选择“开发和维护三个独立的本机代码库”。正如您所说,您将提供更加集成和原生的用户体验,并提供(尚未)通过 HTML/JavaScript 提供的功能。

我已经成功地构建和维护了一个在 Android、iPhone、J2ME 和 Symbian 上运行的应用程序,这不是一个大问题。

于 2010-10-15T13:42:15.733 回答
0

谢谢,看看 Jango , www.jango.com ,从外观上看,它都是 HTML / JS。效果很好。

于 2010-10-15T16:05:26.393 回答