<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的相關連接

    最新評論

    主站蜘蛛池模板: 国产精品99精品久久免费| 黄页网址大全免费观看12网站| 三级网站在线免费观看| 国产免费小视频在线观看| 亚洲无码一区二区三区| 成人黄18免费视频| 亚洲日本人成中文字幕| 大地资源免费更新在线播放| 亚洲永久在线观看| 最近2019中文字幕免费看最新| 亚洲一区二区三区高清在线观看 | 免费精品国产自产拍在线观看| 日韩高清免费观看| 黄网站免费在线观看| 国产V亚洲V天堂无码| 13小箩利洗澡无码视频网站免费| 亚洲第一中文字幕| 99re这里有免费视频精品| 亚洲福利视频网址| 99视频在线精品免费观看6| 精品国产亚洲AV麻豆 | 日韩亚洲人成在线综合日本| 日韩精品免费在线视频| 亚洲国产美女视频| 成全影视免费观看大全二| 羞羞漫画登录页面免费| 久久99亚洲综合精品首页| 黄网站免费在线观看| 亚洲a级片在线观看| av无码东京热亚洲男人的天堂| 成年女人A毛片免费视频| 亚洲国产日韩女人aaaaaa毛片在线| 免费看国产精品3a黄的视频| 男男gvh肉在线观看免费| 久久精品国产亚洲AV麻豆不卡| 4399好看日本在线电影免费| 成人精品国产亚洲欧洲| 亚洲成AV人片在| 成人免费视频88| 一级一级毛片免费播放| 亚洲国产精品久久网午夜|