<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進行手機開發(fā)之——播放多媒體

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

     

           Demo開發(fā)環(huán)境:

                  NetBeans 5.5.1

                  Mobility Package

     

    一.圖片

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

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

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

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

    設(shè)置完運行程序即可發(fā)現(xiàn)圖片已經(jīng)可以顯示。

     

    二.音頻

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

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

    MIME類型                       描述

    audio/midi                      MIDI文件

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

    audio/x-tone-seq                MIDP2.0音調(diào)序列

    audio/x-wav                     WAV PCM取樣音頻

    image/gif                       FIG89a(活動的GIF

    video/mpeg                      MPEG視頻

    video/vnd.sun.rgb565            視頻記錄

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

     

    播放音頻的主要開發(fā)步驟為:

    1.       獲得音頻資源

    2.       創(chuàng)建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類,此部分代碼未顯示

                                                     //獲取音頻資源,創(chuàng)建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); //暫停后繼續(xù)播放

                                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視頻。

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

    主要的代碼如下:

    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類,此部分代碼未顯示

                                                     //獲取視頻資源,創(chuàng)建Player

     

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

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

                                video.realize();

     

                            } catch (Exception e) {

                                e.printStackTrace();

                            }

                            try {

                                       // 設(shè)置VideoControl控制類               

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

      //設(shè)置視頻播放的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);  //暫停后繼續(xù)播放

                                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             

                }

     

    四.注意事項

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

    打開程序->屬性->管理仿真器->工具和擴展->打開首選項->存儲,可以設(shè)置存儲大小和內(nèi)存大小。但是此大小不能大于程序?qū)?yīng)用的手機的內(nèi)存大小,否則就算是程序能在模擬器中運行還是不能在手機中運行。

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


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


    網(wǎng)站導(dǎo)航:
     

    導(dǎo)航

    常用鏈接

    相冊

    java的相關(guān)連接

    最新評論

    主站蜘蛛池模板: 亚洲人成电影福利在线播放| 久久精品无码专区免费东京热| 免费a在线观看播放| 亚洲短视频男人的影院| 69免费视频大片| 亚洲av无码一区二区三区四区 | 99在线免费观看视频| 国产亚洲精品线观看动态图| 国产激情免费视频在线观看| 亚洲综合偷自成人网第页色| 亚洲七七久久精品中文国产| 性生大片视频免费观看一级| 久久久久亚洲精品天堂| 国产hs免费高清在线观看| 无码国产精品一区二区免费模式 | 亚洲熟妇无码乱子AV电影| free哆啪啪免费永久| 成人免费视频一区二区| 亚洲精品网站在线观看你懂的| 久久国产精品免费专区| 亚洲第一成年免费网站| 亚洲成在人线av| 国产色婷婷精品免费视频| 国产区图片区小说区亚洲区| 亚洲a在线视频视频| 免费在线观看的黄色网址| www视频免费看| 久久久久久毛片免费看| 亚洲人成自拍网站在线观看| 亚洲国产精品国自产拍电影| 亚洲成人一区二区| a高清免费毛片久久| 亚洲国产日韩综合久久精品| 久久精品国产亚洲AV网站| 高清在线亚洲精品国产二区| 色爽黄1000部免费软件下载| 亚洲色精品VR一区区三区| 亚洲成A人片在线观看无码不卡| 国产精品极品美女免费观看| 99久久国产热无码精品免费| 免费观看在线禁片|