【问题标题】:Most suitable file format for playing audio files in smart phones最适合在智能手机中播放音频文件的文件格式
【发布时间】:2012-01-26 16:40:04
【问题描述】:

我有一个网络应用程序(jsp/servlets),它允许用户下载音频文件并在手机上播放。针对大量受众,我希望为普通智能手机开发一个 j2me 应用程序。我的音频文件是录音,可能会播放大约 50 分钟。因此,一个非常轻量级的音频文件应该可供用户在我的移动应用程序中下载和播放。J2ME 应用程序可以通过 http 访问音频文件(因为大多数手机支持 http 而不是 rtsp)。我的问题是
1.哪种音频文件格式最适合在更多智能手机(诺基亚、索尼爱立信、摩托罗拉等)上运行,并且下载量最轻? (据我所知 mp3 很好,但更多手机支持 mp3 吗?)
2.我如何在servlet中编码大音频文件(开源编解码器和那些编码的音频文件必须在j2me应用程序中播放:- Manager.createPlayer(url)很容易,任何示例代码或源代码)

我的目标是让用户下载大约 5mb 的文件,这可能会运行大约 50 分钟。我不知道这是否可能。如果有人知道,请让我知道我的问题的答案。

【问题讨论】:

    标签: java java-me audio-streaming


    【解决方案1】:

    Manager 类允许您测试设备是否支持 mp3。大多数最新的 JavaME 设备都支持,但您还是应该检查一下,因为唯一保证支持的音频格式是 wav。

    至于最好的,我猜在你的情况下,最好的传输速度是最快的。您应该以可接受的最低质量创建文件(例如:单声道而不是立体声,低比特率而不是高比特率等)。由于您使用的是语音而不是音乐,因此您实际上并不需要 44.1 kHz 立体声 CD 质量。

    编辑:
    但是,我认为您不能通过 HTTP 在 JavaME 中流式传输音频。 Player.prefetch 方法会在播放前尝试下载整个文件,对于像 JavaME 这样的内存受限设备来说,50 MB 实在是太大了。如果您的设备支持,您必须使用 RSTP;或使用createPlayer 方法的DataSource 版本,并实现DataSource 以从HTTP 连接返回常规InputStream

    【讨论】:

    • 感谢您的回答。 wav 比 mp3 大。这就是我想到 mp3 的原因。我也接受 wav 保证在 j2me 应用程序中播放。那么如何将音频文件 (50mb) 的大小减小到 1-5 mb wav?我不能使用 rtsp,因为我的 web 应用程序在 http.then 我可能需要另一台服务器 :( .
    • 50MB 到 1-5 MB 可能是不可能的。这取决于文件是如何生成的,以及您对此过程有多少控制权。如果文件很少并且这些文件是由您生成的,则可以使用编辑器(例如 Audacity,它是免费软件)。在任何情况下你都应该流式传输,分配 1MB 的 RAM 对于一些旧设备来说仍然太多了。
    • DataSource 方法可能不适用于某些会尝试获取整个文件的设备,例如 Manager.createPlayer(InputStream)。关于 RTSP 支持,完全取决于实现。 (是的,JavaME 很烂 XD)
    • 非常感谢史密斯先生。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多