我正在尝试在J2ME中编写一个简单的媒体播放应用程序.目前我从最简单的事情开始,我只想从jar文件中包含的资源中播放wav文件.我正在使用这个简单的代码:
DataInputStream wav = new DataInputStream(getClass().getResourceAsStream("sample.wav"));
Player player = Manager.createPlayer(wav, "audio/x-wav");
player.addPlayerListener(this);
player.realize();
VolumeControl vc = (VolumeControl) player.getControl("VolumeControl");
if( vc != null )
vc.setLevel(100);
player.start();
Run Code Online (Sandbox Code Playgroud)
我删除了一些日志代码.我在两部手机上运行:带有最新固件的诺基亚E65和带有原始固件的诺基亚3110c.在E65上,我看到播放器已创建,它开始播放,并且没有异常抛出.但是我什么都听不到......同样的波形文件在内置媒体播放器中运行良好.如你所见,我附加了一个玩家监听器,它只收到一条消息:STARTED.没有VOLUME_CHANGED和END_OF_MEDIA事件.
在3110c上运行的相同jar文件播放正常并显示所有预期的玩家事件.
不知道E65可能出了什么问题,或者我做错了什么?提前致谢.
由于许多J2ME手机的(非常烦人)限制,音频文件在完全下载之前无法播放.因此,为了播放实时流,我不得不一次下载块,并构建ByteArrayInputStreams,然后我将其提供给玩家.
这很有效,除了每次流结束时需要大约1/4秒的烦人间隙并且需要新的间隙.有没有办法解决这个问题,或上面的问题?
我正试图在高端诺基亚手机(N95)上进行图像捕捉.手机的内置摄像头非常好(4百万像素),但在j2me我似乎只能获得最大1360x1020的图像.我从这个例子中得到了很大的帮助http://developers.sun.com/mobility/midp/articles/picture/
我做的是从640x480开始,分别将宽度和高度增加80和60,直到失败.代码行是:
jpg = mVideoControl.getSnapshot("encoding = jpeg&quality = 100&width ="+ width +"&height ="+ height);
所以这两个问题是:1.当获得大于1360x1020的图像时,手机会抛出异常.2.较高分辨率的图像看起来只是较小分辨率图像的平滑版本.例如,当我拍摄一张640x480的图像并在photoshop中增加它时,我无法区分它和一个据称为1360x1020的图像.
这是手机上j2me的限制吗?如果有的话,是否有人知道如何从j2me应用程序中获得更高的分辨率和/或如何从另一个应用程序中访问本机相机?
使用J2ME Media库的音频播放的最佳方法是什么?例如,我应该使用MMAPI还是应该使用Midlet的platformRequest(String s)方法?
有没有人知道一个好的存储库来获取BlackBerry的示例代码?具体来说,这些样本将帮助我学习录制音频的机制,甚至可能对其进行采样并对其进行一些动态信号处理?
我想读取传入的音频,如果需要的话,逐个样本,然后处理它以产生所需的结果,在这种情况下是可视化器.
我正在尝试播放录制的wave文件.在播放时,会在以下语句中引发异常:
Player player = Manager.createPlayer(is, "audio/mpeg");
Run Code Online (Sandbox Code Playgroud)
我播放wave文件的全部代码如下:
if (types[cnt].equals("audio/x-wav")) {
Class clazz = Class.forName("RecordAudio");
InputStream is =
clazz.getResourceAsStream("file:///SDCard/BlackBerry/original.wav");
//create an instance of the player from the InputStream
Player player = Manager.createPlayer(is, "audio/mpeg");
player.realize();
player.prefetch();
//start the player
player.start();
}
Run Code Online (Sandbox Code Playgroud)
可能是什么问题呢?