⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 audioplayer.java

📁 j2me简单实例,j2me教程加源码,希望大家喜欢
💻 JAVA
字号:
package com.j2medev.chapter7;

import java.io.*;
import javax.microedition.lcdui.Alert;
import javax.microedition.lcdui.AlertType;
import javax.microedition.media.control.*;
import javax.microedition.media.*;
        
public class AudioPlayer implements Runnable {
    
    private AudioMIDlet midlet = null;
    private Player recPlayer = null;
    private RecordControl record = null;
    //存储录音文件
    private ByteArrayOutputStream bos = new ByteArrayOutputStream();
    private Alert alert = new Alert("info");
    
    public AudioPlayer(AudioMIDlet _midlet) {
        this.midlet = _midlet;
        alert.setType(AlertType.WARNING);
    }
    
    private void createRecordPlayer(){
        try{
            //创建Player
            recPlayer = Manager.createPlayer("capture://audio");
            recPlayer.realize();
            recPlayer.prefetch();
        }catch(IOException ex){
            showAlert(ex.getMessage());
        }catch(MediaException ex){
            showAlert(ex.getMessage());
        }
    }
    
    private void showAlert(String message){
        alert.setString(message);
        alert.setTimeout(2000);
        midlet.setCurrent(alert);
    }
    
    public void startRecord(){
        new Thread(this).start();
    }
    
    public void stopRecord(){
        try {
            //停止录音,把录音数据写入到内存
            record.stopRecord();
            record.commit();
            recPlayer.close();
            recPlayer = null;
        } catch (IOException ex) {
            showAlert(ex.getMessage());
        }
    }
    
    public void playRecord(){
        //播放存储在内存中的录音数据
        byte[] data = bos.toByteArray();
        try {
            bos.close();
        } catch (IOException ex) {
            showAlert(ex.getMessage());
        }
        InputStream is = new ByteArrayInputStream(data);
        try{
            //getContentType()可以得到媒体类型
            Player p = Manager.createPlayer(is,record.getContentType());
            p.start();
        }catch(IOException ex){
            showAlert(ex.getMessage());
        }catch(MediaException ex){
            showAlert(ex.getMessage());
        }
    }
    
    public void run() {
        if(recPlayer == null)
            createRecordPlayer();
        try {
            //创建RecordControl
            record = (RecordControl)recPlayer.getControl("RecordControl");
            record.setRecordSizeLimit(204800);
            //设置录音记录存储的位置
            record.setRecordStream(bos);
            recPlayer.start();
            //开始录音
            record.startRecord();
        } catch (MediaException ex) {
            showAlert(ex.getMessage());
        }
    }
    
    public void release(){
        //释放资源
    }
    
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -