MP3在Sony Ericsson K700上的音响效果

news/2024/10/17 22:29:06/

作者:lulei024 文章来源:http://developer.sonyericsson.com

MP3Sony Ericsson K700上的音响效果

 

MIDlets中,通过使用MP3文件,可以在很大程度上改善音效。这篇小技巧和后面一个附带源代码的MIDlet程序将会向你指出如何去做。

像任何以采样为基础的声音播放一样,MP3播放的音质很大程度上依赖于采样率。下面的内容说明了人们在主观上对一些常见的不同采样率的MP3音质的评价。

 

采样率

8,000 Hz

电话机的品质

11,025 Hz

AM 调频收音机的品质

16,000 Hz

11 KHz22 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,你必须先把它转成8000hz16-bitwav格式的文件,然后你再用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){}
    }
}

 

 

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){}
    }
}

 


http://www.ppmy.cn/news/149468.html

相关文章

《C++ list的模拟实现》

本文主要介绍list容器的模拟实现 文章目录 1、迭代器正向迭代器类反向迭代器类 2、push_back尾插函数3、 push_front头插函数4、 insert插入函数5、erase删除函数6、pop_front函数7、pop_back函数8、 构造函数9、 拷贝构造函数10、 list赋值重载函数11、clear12、 析构函数程序…

Yolov8轻量级:VanillaNet一种新视觉Backbone,极简且强大!华为诺亚2023

简到极致、浅到极致!深度为6的网络即可取得76.36%@ImageNet的精度,深度为13的VanillaNet甚至取得了83.1%的惊人性能。 1.VanillaNet 论文:https://arxiv.org/pdf/2305.12972.pdf 来自华为诺亚、悉尼大学的研究者们提出了一种极简的神经网络模型 VanillaNet,以极简主义的设…

git合并代码后,目录被删除了

问题: 同事x在a分支使用git checkout b -- test.md命令抽取b的文件,然后把代码合并到merge-c。 同事y在merge-c分支,合并了自己的分支b,然后拉取同事x的分支,发现产生了冲突,解决了冲突后提交。 最后发现自…

LNMP及论坛搭建

文章目录 LNMP及论坛搭建1 Nginx1.1 关闭防火墙1.2 安装依赖包1.3 创建运行用户、组1.4 编译安装nginx1.5 优化路径1.6 添加nginx系统服务 2 MySQL服务2.1 安装Mysql环境依赖包2.2 创建运行用户2.3 编译安装2.4 修改mysql配置文件2.5 更改mysql安装目录和配置文件的属主属组2.6…

vivo iQOOX80 X70 X60 X30 S9 S6 Y53sY52s Y31s U5x Z1x手撕账户

vivo iQOOX80 X70 X60 X30 S9 S6 Y53sY52s Y31s U5x Z1x手撕账户 OPPO vivo iQOO手撕 iCloud云空间 133287550

(C语言)数组去重

现有一组数&#xff0c;a[]{1,1,1,3,3,5,5,5,5,6,6,8,8,9,10,10} 要求将他们变为&#xff1a;{1&#xff0c;3&#xff0c;5&#xff0c;6&#xff0c;8&#xff0c;9&#xff0c;10} #include<stdio.h> int fun(int a[],int n){&#xff0c;int i,j1,ka[0],m,flag0;for…

c语言中%s的用法

转自&#xff1a;https://www.pinlue.com/article/2020/03/3100/5310073904413.html C语言是计算机软件领域非常经典的编程语言,unix、linux等众多操作系统均是由C语言编写而成。而在硬件控制、底层驱动等应用领域,C语言更是具有不可替代的作用。下面小编就跟你们详细介绍下c语…

三星s6 html5测试分数,vivos6跑分成绩多少性能怎么样 vivos6手机安兔兔跑分及性能实测分析...

vivos6跑分成绩多少&#xff1f;vivos6性能怎么样?对于最新发布的高颜值vivos6手机&#xff0c;很多的女生用户可是非常的喜欢&#xff0c;而且性价比也非常的高&#xff0c;但是vivos6手机的性能到底怎么样&#xff1f;vivos6手机跑分成绩有多少呢&#xff1f;下面就和小编一…