我的文件夹中有一组音频文件。现在,我想使用Java将所有这些音频文件加载到内存中,以便以后节省读取时间。此外,用户可以选择他想要播放的音频文件以及位置。
有人可以向我推荐合适的API吗
我听说过Clip库,但我听说它只存储了价值1秒的音频。有什么建议吗?
如果有帮助,我的情况下的音频文件每个长4分钟,我有40个。
答案 0 :(得分:1)
答案 1 :(得分:1)
对于可以使用可用(对应用)RAM的Clip
,请参阅BigClip
。
..
BigClip
类通过outof memory异常。
它将在带有标准内存的JRE中。我有一个DukeBox用于我的音乐收藏。它在分配给应用程序的512 Meg内存中播放长达20分钟的典型MP3(立体声,16位,44.1KHz)。
你仍然没有指定声音的格式,因此无法说出160分钟的音频需要多少内存,超出“很多”。
OTOH,您可能会发现每个BigClip
单独加载所需的时间,时间不是很长。我的软件旨在直接从本地磁盘加载,并包含在默认的ProgressMonitorInputStream
中。进度对话框很少出现 - 仅适用于播放时间超过12-14分钟的曲目。 “一次一个”可能会在标准内存中为您的声音样本工作。
..每个4分钟,我有40 ..
包含160分钟音频所需的内存大小将相差(BOTE)16 - 在高(44100 KHz)/低(11025 KHz)采样率,单声道/立体声和8/16位之间表示音频格式。
160 min *
60 SecPerMin *
11025 KHz *
1 mono *
1 byte (8 bit)
=
105,840,000 bytes
对于较低限制,大约 105 meg 。
答案 2 :(得分:0)
有一个Java API,称为 Java Media Framework ( JMF )。 官方页面说:
Java Media Framework API(JMF)支持将音频,视频和其他基于时间的媒体添加到基于Java技术构建的应用程序和applet中。该可选包可以捕获,回放,流式处理和转码多种媒体格式,通过提供功能强大的工具包来开发可扩展的跨平台技术,为多媒体开发人员扩展了Java 2平台标准版(J2SE)。
以下是其他资源:
Article: Process multimedia with the Java Media Framework API 作者:Peter Mikhalenko