作者:lulei024 文章来源:http://developer.sonyericsson.com
MP3在Sony Ericsson K700上的音响效果
在MIDlets中,通过使用MP3文件,可以在很大程度上改善音效。这篇小技巧和后面一个附带源代码的MIDlet程序将会向你指出如何去做。
像任何以采样为基础的声音播放一样,MP3播放的音质很大程度上依赖于采样率。下面的内容说明了人们在主观上对一些常见的不同采样率的MP3音质的评价。
采样率
8,000 Hz
电话机的品质
11,025 Hz
AM 调频收音机的品质
16,000 Hz
在11 KHz和22 KHz之间的折中音质
22,050 Hz
接近 FM 收音机的品质
32,075 Hz
比 FM 收音机的品质好一些
44,100 Hz
CD 音质
48,000 Hz
DAT 音质
另一个影响因素是单独采样的比特分辨率,选择8比特的分辨率将可以提供256级展示效果,如果选择16比特那么可以提供65k级的效果。为了获得高质量的MP3文件,我们最好存储为一下格式:
22,050 Hz, 16-bit resolution, mono, 40kbps
44,100 Hz. 16-bit resolution, mono, 64kbps
创建一个20秒的MP3文件,在22.050Khz频率下的大小为99kb,在44.1Khz采样率下为158kb。如果把他们转换成AMR格式的,大小为27kb,但是音质有所下降。如果你想把MP3转成AMR,你必须先把它转成8000hz,16-bit的wav格式的文件,然后你再用AMR Converter 来转换成AMR格式的文件。AMR格式的文件的采样率只有8khz,它可以很好的应用在人声上,MP3更适合听音乐。你可以从这里下载AMR Converter
用MMAPI播放MP3文件还算简单,读者应该注意创建Player的时候mp3的内容类型应该是audio/mpeg。如果创建其他的媒体类型的播放器请参考下面的列表:
Wave audio files: audio/x-wav AU audio files: audio/basic MP3 audio files: audio/mpeg MIDI files: audio/midi Tone sequences: audio/x-tone-seq MPEG video files: video/mpeg 下面是播放mp3的例子:
InputStream is = getClass().getResourceAsStream("/example.mp3");
try{
player = Manager.createPlayer(is, "audio/mpeg");
player.start();
}catch(Exception e){}
需要更多关于K700上声音的信息,请参阅Sony Ericsson J2ME Developers’ Guidelines和 JSR-135 文档。
import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;
import javax.microedition.media.*;
import javax.microedition.io.*;
import java.io.*;
public class MP3 extends MIDlet {
public void startApp() {
MusicPlayer mp = new MusicPlayer();
mp.playMP3();
}
public void pauseApp() {
}
public void destroyApp(boolean unconditional) {
}
}
class MusicPlayer{
private Player player = null;
private Runtime rt;
public MusicPlayer(){
rt = Runtime.getRuntime();
}
public void playMP3(){
InputStream is = getClass().getResourceAsStream("/Discuss.mp3");
try{
player = Manager.createPlayer(is, "audio/mpeg");
player.start();
}catch(Exception e){}
}
}
用MMAPI播放MP3文件还算简单,读者应该注意创建Player的时候mp3的内容类型应该是audio/mpeg。如果创建其他的媒体类型的播放器请参考下面的列表:
Wave audio files: audio/x-wav AU audio files: audio/basic MP3 audio files: audio/mpeg MIDI files: audio/midi Tone sequences: audio/x-tone-seq MPEG video files: video/mpeg 下面是播放mp3的例子:
InputStream is = getClass().getResourceAsStream("/example.mp3");
try{
player = Manager.createPlayer(is, "audio/mpeg");
player.start();
}catch(Exception e){}
需要更多关于K700上声音的信息,请参阅Sony Ericsson J2ME Developers’ Guidelines和 JSR-135 文档。
import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;
import javax.microedition.media.*;
import javax.microedition.io.*;
import java.io.*;
public class MP3 extends MIDlet {
public void startApp() {
MusicPlayer mp = new MusicPlayer();
mp.playMP3();
}
public void pauseApp() {
}
public void destroyApp(boolean unconditional) {
}
}
class MusicPlayer{
private Player player = null;
private Runtime rt;
public MusicPlayer(){
rt = Runtime.getRuntime();
}
public void playMP3(){
InputStream is = getClass().getResourceAsStream("/Discuss.mp3");
try{
player = Manager.createPlayer(is, "audio/mpeg");
player.start();
}catch(Exception e){}
}
}