MP3在Sony Ericsson K700上的音响效果

来源:developer.sonyericsson.com 作者:lulei024 2007-11-16 出处:pcdog.com

j2me  java  office  xml  

MP3Sony 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。如果创建其他的媒体类型的播放器请参考下面的列表:

  1. Wave audio files: audio/x-wav
  2. AU audio files: audio/basic
  3. MP3 audio files: audio/mpeg
  4. MIDI files: audio/midi
  5. Tone sequences: audio/x-tone-seq
  6. 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){}
    }
}



上一篇:使用索爱V800开发流媒体应用程序
下一篇:基于Nokia S40的猜数字游戏之一