新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 在MIDP應用程序中播放聲音

        在MIDP應用程序中播放聲音

        作者: 時間:2012-05-07 來源:網絡 收藏

        //數據的讀取

        本文引用地址:http://www.104case.com/article/149129.htm

        bgm=Media.getAudioClip(/bgm.mid);//背景音樂

        ballSound=Media.getAudioClip(/ball.mid);//球反彈后的音效

        blockSound=Media.getAudioClip(/block.mid);//球破碎的音效

        bgm.addAudioListener(this);//增加AudioListener

        ex.13

        ·

        讀取音樂數據后,接下來進行。BGM在游戲開始的同時能夠,所以在AudioCanvas類的start方法中記述播放處理并能夠播放出來。

        球的音效:用moveBall方法進行下面反彈判斷時,能夠播放音效。(ex.14)

        //反彈

        //碰邊壁后反彈

        if(ballX0){

        ballMoveX*=-1;

        ballX=0;

        //播放音效

        ballSound.play();

        }elseif(getWidth()

        ballX=getWidth()-BALL_HEIGHT;

        ballMoveX*=-1;

        //播放音效

        ballSound.play();

        }

        if(ballY0){

        ballMoveY*=-1;

        ballY=0;

        //播放音效

        ballSound.play();

        }elseif(ballY>getHeight()){//球落下后

        //游戲結束

        state=GAME_OVER;

        }

        //碰上小棒反彈

        if(ballY+BALL_HEIGHT>barY

        ballX+BALL_WIDTH>barX

        ballX

        ballMoveY*=-1;

        ballY=barY-BALL_HEIGHT;

        if(barMoveX0){

        ballMoveX-=2;

        }elseif(barMoveX>0){

        ballMoveX+=2;

        }

        //播放音效

        ballSound.play();

        }

        ex.14

        彩球的音效:用moveBall方法判定彩球的碰撞時,如下記述并能夠播放。(ex.15)

        //碰上彩球后反彈

        for(inti=0;i

        for(intj=0;j

        if(block[i][j]){

        if(ballX+BALL_WIDTH>i*BLOCK_WIDTH

        ballX(i+1)*BLOCK_WIDTH){

        if(ballY+BALL_HEIGHT>(j+1)*BLOCK_HEIGHT

        ballY(j+2)*BLOCK_HEIGHT){

        block[i][j]=false;

        ballMoveY*=-1;

        //播放音效

        blockSound.play();

        }

        }

        }

        }

        }

        ex.15

        ■完成

        下面是實際制作的程序一式。(BlockApplication.zip)

        運行結果如下所示。

        游戲進行中游戲結束

        游戲結束

        總結

        在本講的講解中能夠自由播放音樂數據了。因此,能夠制作成創造性的。但是,擴展時,不能保存高分、數據等。在下講我們將學習如何使用固定存儲器保存數據的方法。

        查看png格式的畫面文件

        播放smf格式的音樂文件

        http通信,socket通信

        逆光、雙感光板控制

        Sprite功能

        ImageMap功能

        各種各樣的制圖擴展功能

        3D引擎

        由于N820具有256Kbyte的較大存儲空間,所以能制作容量稍大、自由度較高的手機。另外,也能制作對應http、socket通信的自由度較高網絡應用程序。因此,也能夠搭載3D引擎、3D描畫。而且還能安裝N800對應的Sprite功能、ImageMap功能的描畫功能。

        ■與N800的比較

        下表是N800和N820的比較。(表6)

        項目N800N820

        顯示屏尺寸180x162(縱x橫)255x240(縱x橫)

        JAD文件尺寸最大2KB最大2KB

        JAR文件尺寸最大50KB最大1MB

        RMS尺寸最大10KB最大10KB

        記錄存儲數量最大3records最大3records

        通信協議只有httpHTTPandsocket

        畫像文件PNGPNG

        音樂文件SMF(format0)最大10KbyteSMF(format0)最大10Kbyte

        表6

        ■NECN820Application模擬器

        下面是模擬N820工作的模擬器,稱為「NEC820ApplicationEmulator」。與以前我們所介紹的「NECN800ApplicationEmulator」在外觀上沒有什么區別。(5)

        圖5

        打開模擬器,就是現在的手機畫面表示。與N800相比,手機設計多少有些變化,手機的內顯示屏變大了。下圖是用N820ApplicationEmulator制作的“泡泡龍”游戲畫面。“泡泡龍”游戲由于是假定在N800的屏幕上應用的。因此畫面尺寸要比N820中的內屏尺寸稍小。因此,彩球之間存有空隙。(6)

        6

        ■總結

        N820的優點是具有256Kbyte的大容量存儲空間,而且使用3D圖表引擎、3D圖表應用程序、能夠制作成對應socket通信的TCP/IP網絡應用程序。對于應用開發者而言,N820是一部制作JAVA應用程序非常有價值的終端。對于尋求高級機種的用戶而言,應該是一部高精細畫面、高功能的極大滿足用戶需要的終端。今后N820的用戶應該會大幅度增加的。


        上一頁 1 2 3 4 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 临潭县| 九龙县| 西峡县| 三河市| 新田县| 共和县| 格尔木市| 曲麻莱县| 石渠县| 绥芬河市| 靖边县| 德兴市| 东乡族自治县| 安义县| 双牌县| 兴海县| 黄梅县| 邢台县| 绥德县| 阿荣旗| 淮北市| 惠来县| 上林县| 清远市| 兴义市| 嘉义市| 武威市| 潼关县| 云南省| 镇康县| 合江县| 长顺县| 临朐县| 翁牛特旗| 江西省| 泰顺县| 安吉县| 车险| 郓城县| 古交市| 汝南县|