<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    布衣王子

    Email:roose2008@gmail.com QQ:79212131

    NetBeans進行手機開發之——播放多媒體

           NetBeans使用mobility包開發手機程序,采用了流設計使得開發過程簡便和可視化。在這里我主要介紹如何在使用mobility包開發播放多媒體數據(圖片、音頻、視頻)的Demo,和大家一起分享。

     

           Demo開發環境:

                  NetBeans 5.5.1

                  Mobility Package

     

    一.圖片

    NetBeans上手機顯示圖片非常方便,只需要幾個拖拽和設置即可完成,甚至不需要寫到一行代碼。主要步驟為:

    1. 把圖片放到程序主目錄/src/ 文件夾里面

    2. 在資源中增加一個Image資源,并設置其屬性,把資源路徑屬性設置為某個圖片資源。

    3. form中增加一個ImageItem,將其圖片屬性設為上述的Image資源,并根據需要設置圖片的布局。

    設置完運行程序即可發現圖片已經可以顯示。

     

    二.音頻

    J2ME中,移動媒體APIMMAPI)是一個可選包,它提供了一個標準的API,可以用來表現和獲得以時間為基礎的媒體。例如聲音軌道和視頻片斷。在mobility包安裝后就會有這個MMAPI包,在程序->屬性->可選包中即可發現MMAPI包。

    在此Demo中使用的MMAPI1.1,這個版本支持以下媒體類型:

    MIME類型                       描述

    audio/midi                      MIDI文件

    audio/sp-midi                   可升級的多音MIDI

    audio/x-tone-seq                MIDP2.0音調序列

    audio/x-wav                     WAV PCM取樣音頻

    image/gif                       FIG89a(活動的GIF

    video/mpeg                      MPEG視頻

    video/vnd.sun.rgb565            視頻記錄

    其他媒體類型(Mp4,3gp)等現在還沒支持,相信在不久的將來MMAPI新版本就會支持。

     

    播放音頻的主要開發步驟為:

    1.       獲得音頻資源

    2.       創建Player

    3.       播放音頻

    主要的代碼如下:

    if (command == playMusicCommand) {                    

                    // Insert pre-action code here

                    isPlay = !isPlay;

                    if(isPlay == true)

                    {

                        form2.removeCommand(playMusicCommand);

                        playMusicCommand = new Command("暫停", Command.OK, 1);

                        form2.addCommand(playMusicCommand);

                        if(music == null)

                        {

                            try {                          

                                in = null;         //inInputStream類,此部分代碼未顯示

                                                     //獲取音頻資源,創建Player

                                in = getClass().getResourceAsStream("qhc.wav");

                                music = Manager.createPlayer(in,"audio/x-wav");

                               

                            } catch (Exception e) {

                                e.printStackTrace();

                            }

                            try {                

                                music.start();         //開始播放

                                ticker1.setString("正在播放音樂  ");

                            } catch (Exception e) {

                                e.printStackTrace();

                            }

                        }

                        else

                        {

                            try {

                                music.setMediaTime(pauseTime); //暫停后繼續播放

                                music.start();

                                ticker1.setString("正在播放音樂 ");

                            } catch (Exception e) {

                                e.printStackTrace();

                            }

                        }

                    }

                    else

                    {

                        try {

                            pauseTime = music.getMediaTime();    //暫停播放

                            music.stop();

                            ticker1.setString("暫停播放");

                            form2.removeCommand(playMusicCommand);

                            playMusicCommand = new Command("播放", Command.OK, 1);

                            form2.addCommand(playMusicCommand);

                        } catch (Exception e) {

                            e.printStackTrace();

                        }

                    }

                    // Do nothing                       

                    // Insert post-action code here

                } else if (command == backCommand5) {                     

                    // Insert pre-action code here

                    try {

                        music.stop();         //停止播放

                        music.close();

                        isPlay = false;

                    } catch (Exception e) {

                        e.printStackTrace();

                    }

                    form2.removeCommand(playMusicCommand);

                    playMusicCommand = new Command("播放", Command.OK, 1);

                    form2.addCommand(playMusicCommand);

                    getDisplay().setCurrent(get_list1());                       

                    // Insert post-action code here

                }

     

    三.視頻

    播放視頻仍然要注意播放的視頻格式是否是正在使用的MMAPI版本所支持的,這里我們主要播放.mpg視頻。

    播放視頻和播放音頻的主要步驟是一樣的,主要的區別在于視頻需要建立VideoControl類,用來設置視頻的顯示模式等。

    主要的代碼如下:

    if (command == playVideoCommand) {                    

                    // Insert pre-action code here

                    isPlay = !isPlay;

                    if(isPlay == true)

                    {

                        form3.removeCommand(playVideoCommand);

                        playVideoCommand = new Command("暫停", Command.OK, 1);

                        form3.addCommand(playVideoCommand);

                        //isPlay = false;

                        if(video == null)

                        {

                            try {                          

                                iv = null; //ivInputStream類,此部分代碼未顯示

                                                     //獲取視頻資源,創建Player

     

                                iv = getClass().getResourceAsStream("sun.mpg");

                                video = Manager.createPlayer(iv,"video/mpeg");

                                video.realize();

     

                            } catch (Exception e) {

                                e.printStackTrace();

                            }

                            try {

                                       // 設置VideoControl控制類               

                       VideoControl vc = (VideoControl)video.getControl("VideoControl");

      //設置視頻播放的Item

    Item videoItem = (Item)vc.initDisplayMode(VideoControl.USE_GUI_PRIMITIVE,null);

                                //form3.deleteAll();

                                form3.append(videoItem);

                                video.start();          //開始播放

                                ticker2.setString("正在播放視頻");

                            } catch (Exception e) {

                                e.printStackTrace();

                            }

                        }

                        else

                        {

                            try {

                                video.setMediaTime(pauseTime);  //暫停后繼續播放

                                video.start();  

                                ticker2.setString("正在播放視頻”");

                            } catch (Exception e) {

                                e.printStackTrace();

                            }

                        }

                    }

                    else

                    {

                        try {

                            pauseTime = video.getMediaTime();     //暫停播放

                            video.stop();  

                            ticker2.setString("暫停播放視頻 ");

                            form3.removeCommand(playVideoCommand);

                            playVideoCommand = new Command("播放", Command.OK, 1);

                            form3.addCommand(playVideoCommand);

                        } catch (Exception e) {

                            e.printStackTrace();

                        }

                    }

                   

                    // Do nothing                       

                    // Insert post-action code here

                } else if (command == backCommand4) {                     

                    // Insert pre-action code here

                    try {

                        video.stop();   //停止播放

                        video.close();

                        isPlay = false;

                    } catch (Exception e) {

                        e.printStackTrace();

                    }

                    form3.removeCommand(playVideoCommand);

                    playVideoCommand = new Command("播放", Command.OK, 1);

                    form3.addCommand(playVideoCommand);

                    getDisplay().setCurrent(get_list1());                        

                    // Insert post-action code here             

                }

     

    四.注意事項

    開發播放多媒體程序時應該注意資源的大小和模擬器設置的大小以及開發應用的手機的資源等。在開發如果程序都還沒有錯誤(如未釋放內存資源等)還是出現OutOfMemoryError就應該模擬器設置的內存大小太小。

    打開程序->屬性->管理仿真器->工具和擴展->打開首選項->存儲,可以設置存儲大小和內存大小。但是此大小不能大于程序將應用的手機的內存大小,否則就算是程序能在模擬器中運行還是不能在手機中運行。

    posted on 2008-06-20 10:43 草包書生 閱讀(468) 評論(0)  編輯  收藏


    只有注冊用戶登錄后才能發表評論。


    網站導航:
     

    導航

    常用鏈接

    相冊

    java的相關連接

    最新評論

    主站蜘蛛池模板: 日本高清高色视频免费| 老司机亚洲精品影院在线观看| 美女被免费网站91色| 免费在线黄色网址| 免费看一级高潮毛片| 可以免费观看一级毛片黄a| 久久亚洲中文字幕无码| 亚洲国产午夜福利在线播放| 男女啪啪免费体验区| 综合亚洲伊人午夜网| 久久精品国产免费| 亚洲人成在线播放| 国产美女无遮挡免费视频 | 亚洲精品自产拍在线观看| 两个人看的www高清免费视频| 久久91亚洲人成电影网站| 99在线热视频只有精品免费| 亚洲成年人电影网站| 免费观看男人免费桶女人视频| 美女被吸屁股免费网站| 亚洲色偷偷偷鲁综合| 57PAO成人国产永久免费视频| 亚洲欧美日韩中文字幕一区二区三区| 在线观看永久免费视频网站| 一级特级aaaa毛片免费观看| 久久精品国产亚洲AV网站| 成年美女黄网站色大免费视频| 香蕉97碰碰视频免费| 亚洲AV日韩精品久久久久久久| 91在线品视觉盛宴免费| 无遮挡a级毛片免费看| 亚洲AV无码专区电影在线观看| 国拍在线精品视频免费观看 | 久久久无码精品亚洲日韩蜜桃| 日本黄网站动漫视频免费| 亚洲av永久中文无码精品综合| 久久激情亚洲精品无码?V| 在线观看免费视频资源| 瑟瑟网站免费网站入口| 久久丫精品国产亚洲av不卡 | 精品国产免费观看一区|