程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> J2ME >> J2ME播放聲音流程簡介

J2ME播放聲音流程簡介

編輯:J2ME
在J2ME中,處理聲音需要應用到Mobile Media API(MMAPI),該包是MIDP1.0的可選包,在MIDP2.0中已經包含了這個包。所以假如你應用MIDP1.0的話,請確認你的運行環境是否支撐。一般手機支撐的聲音文件格局為wav、mid和mpg等。具體請查閱你的手機闡明文檔。在聲音處理中,有許多處理的方法,這裡說一下最常用的情況,播放JAR文件中的wav文件。播放聲音文件的流程:

1、按照必定的格局讀取聲音文件


播放JAR文件中的聲音文件一般是將聲音文件處理成流的情勢。示例代碼:

InputStream is = this.getClass().getResourceAsStream("/Autorun.wav");

其中Autorun.wav文件位於JAR文件的根目錄下,假如位於別的目錄,需要加上目錄名稱,如/res /Autorun.wav。

2、將讀取到的內容傳遞給播放器


將流信息傳遞給播放器,播放器按照必定的格局來進行解碼把持,示例代碼:

Player player = Manager.createPlayer(is,"audio/x-wav");

其中第一個參數為流對象,第二個參數為聲音文件的格局。

3、播放聲音


應用Player對象的start方法,可以將聲音播放出來,示例代碼:player.start();

在播放聲音時也可以設定聲音播放的次數,可以應用Player類中的setLoopCount方法來實現,具體可查閱API文檔。下面是在NOKIA S60模仿器中測試通過。代碼如下:

package sound;

import Javax.microedition.midlet.*;

import Javax.microedition.lcdui.*;

import Javax.microedition.media.*;

import Java.io.*;

public class SoundMIDlet extends MIDlet

{

    private Player player = null;

    /** Constructor */

    public SoundMIDlet()

    {

        try

        {

            InputStream is = this.getClass()
                    .getResourceAsStream("/Autorun.wav");

            player = Manager.createPlayer(is, "audio/x-wav");

        }

        catch (IOException e)

        {

            System.out.println("1:" + e);

        }

        catch (MediaException e)

        {

            System.out.println("2:" + e);



        }

        catch (Exception e)

        {

            System.out.println("3:" + e);

        }

    }

    /** Main method */

    public void startApp()

    {

        if (player != null)

        {

            try

            {

                player.start();

            }

            catch (MediaException e)

            {

                System.out.println("4:" + e);

            }

        }

    }

    /** Handle pausing the MIDlet */

    public void pauseApp()

    {

    }

    /** Handle destroying the MIDlet */

    public void destroyApp(boolean unconditional)

    {

    }

}

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved