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

📄 (j2me)播放声音文件的完整源代码.txt

📁 一个播放声音文件(j2me)的完整源代码
💻 TXT
字号:
发表时间: 2006-09-19 14:20   
 
//可以在你的j2me项目中,用这个类文件来播放声音
//使用方法:
//     source = new Source("1.mid");
//     source.start();
//我的手机不支持mp3,^_^,没关系,我自己写个程序来放歌听,只是效果差点.

import javax.microedition.media.*;
import javax.microedition.media.Player;
import javax.microedition.media.control.VolumeControl;
import java.io.*;
/**
 * @author 钟伟海
 * TODO To change the template for this generated type comment go to
 * Window - Preferences - Java - Code Style - Code Templates
 */
public class Source implements PlayerListener{

    Player p;
    VolumeControl volC;

    /**
     *  @param  filename 声音文件名称
     */
    public Source(String fileName) {
        super();
        // TODO Auto-generated constructor stub

        //定义用来读取声音文件的InputStream
        InputStream is = getClass().getResourceAsStream(fileName);
        if(is == null){
            System.out.println("Error happens: InputStream not found " + fileName);
        }

        try {
            p = Manager.createPlayer(is, "audio/midi");
            if(p == null){
                System.out.println("Error handler happens: InputStream " + fileName);
            }else{
                p.addPlayerListener(this);


                //"具现"播放器
                p.realize();
                //预取播放器
                p.prefetch();
                //将播放器设置为无限次播放
                p.setLoopCount(-1);

                System.out.println("Realized Player: " + fileName);
            }
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
            System.out.println(e);
        } catch (MediaException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
            System.out.println(e);
        }

        //从播放器中获取音量控件
        volC = (VolumeControl)p.getControl("VolumeControl");
    }

    /**关闭播放器
     */
    public void destroy(){
        if(p != null){
            p.close();
        }
    }

    /**
     * 从"媒体当前播放到的时刻"开始播放
     */
    public void start(){
        if(p != null){
            try {
                p.start();
            } catch (MediaException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
                System.out.println(e);
            }
        }
    }

    /**
     * 停止当前播放器,注意当调用stop时
     * 播放器不会重绕到开头
     */
    public void stop(){
        if(p != null && p.getState() == Player.STARTED){
            try {
                p.stop();
                System.out.println("The Player stoped here:" + p.getMediaTime());
            } catch (MediaException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
                System.out.println(e);
            }
        }
    }

    /**
     * 将媒体当前播放到的时刻设置为负值
     * 使媒体重绕到开头位置开始播放
     */
    public void rewind(){
        if(p != null & p.getState() == Player.PREFETCHED){
            try {
                p.setMediaTime(-1);
                p.start();
            } catch (MediaException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
                System.out.println(e);
            }
        }
    }

    /**更新播放器的音量
     * @param level
     * @return
     */
    public int setLevel(int level){
        return volC.setLevel(level);
    }

    /** 响应PlayerListener接口的预定义标准事件
     * @see javax.microedition.media.PlayerListener#playerUpdate(javax.microedition.media.Player, java.lang.String, java.lang.Object)
     */
    public void playerUpdate(Player p, String event, Object eventData){
        // TODO Auto-generated method stub
        if(event == STARTED){
            System.out.println("MySound Player STARTED");
        }else if(event == CLOSED){
            System.out.println("MySound Player CLOSED");
        }else if(event == END_OF_MEDIA){
            System.out.println("MySound Player END_OF_MEDIA");
        }else if(event == ERROR){
            System.out.println("MySound Player ERROR");
        }else if(event == VOLUME_CHANGED){
            System.out.println("MySound Player VOLUME_CHANGED");
        }else if(event == DURATION_UPDATED){
            System.out.println("MySound Player DURATION_UPDATED");
        }
    }
} 


 

⌨️ 快捷键说明

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