当前位置: 首页 > news >正文

MP3在Sony Ericsson K700上的音响效果

作者: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){}
}
}

相关文章:

  • K700之图像内存处理
  • react 隐藏组件 阻止渲染
  • react 数组map方法转化列表
  • 使用索爱V800开发流媒体应用程序
  • 读取索爱手机固件版本信息和IMEI号
  • react jsx中使用map
  • 在基于MIDP的应用程序上使用JDBC
  • react 表单使用受控组件的思想
  • 索爱部分机型支持同时播放多个声音
  • react状态提升 两个子组件状态共享 让子组件状态提升 通过公有父组件props的方法传递回调函数执行改变( handleChange(e) { // 之前的代码: this.setSt)
  • SonyEricsson发布更好支持企业级应用的新JSR
  • react 状态提升的总结
  • Java 3D(JSR184)文件压缩
  • 组合vs继承
  • 使用JSR-184里的Sprite3D对象
  • Django 博客开发教程 16 - 统计文章阅读量
  • Java读取Properties文件的六种方法
  • js中forEach回调同异步问题
  • Linux编程学习笔记 | Linux多线程学习[2] - 线程的同步
  • Linux各目录及每个目录的详细介绍
  • Linux下的乱码问题
  • scala基础语法(二)
  • Vue.js-Day01
  • 阿里云前端周刊 - 第 26 期
  • 从 Android Sample ApiDemos 中学习 android.animation API 的用法
  • - 概述 - 《设计模式(极简c++版)》
  • 构造函数(constructor)与原型链(prototype)关系
  • 前端攻城师
  • 前端面试之闭包
  • 前端学习笔记之原型——一张图说明`prototype`和`__proto__`的区别
  • 一加3T解锁OEM、刷入TWRP、第三方ROM以及ROOT
  • 好程序员web前端教程分享CSS不同元素margin的计算 ...
  • ​ubuntu下安装kvm虚拟机
  • ​力扣解法汇总1802. 有界数组中指定下标处的最大值
  • # Python csv、xlsx、json、二进制(MP3) 文件读写基本使用
  • # Swust 12th acm 邀请赛# [ E ] 01 String [题解]
  • #NOIP 2014#day.2 T1 无限网络发射器选址
  • #传输# #传输数据判断#
  • #我与Java虚拟机的故事#连载08:书读百遍其义自见
  • (52)只出现一次的数字III
  • (android 地图实战开发)3 在地图上显示当前位置和自定义银行位置
  • (Java)【深基9.例1】选举学生会
  • (Repost) Getting Genode with TrustZone on the i.MX
  • (附源码)springboot家庭财务分析系统 毕业设计641323
  • (解决办法)ASP.NET导出Excel,打开时提示“您尝试打开文件'XXX.xls'的格式与文件扩展名指定文件不一致
  • (六)c52学习之旅-独立按键
  • (论文阅读40-45)图像描述1
  • (免费领源码)python#django#mysql公交线路查询系统85021- 计算机毕业设计项目选题推荐
  • (三维重建学习)已有位姿放入colmap和3D Gaussian Splatting训练
  • (十一)图像的罗伯特梯度锐化
  • (一)kafka实战——kafka源码编译启动
  • (原創) 如何使用ISO C++讀寫BMP圖檔? (C/C++) (Image Processing)
  • *p++,*(p++),*++p,(*p)++区别?
  • .[hudsonL@cock.li].mkp勒索病毒数据怎么处理|数据解密恢复
  • .NET 4.0中使用内存映射文件实现进程通讯