[求助]android mediaplayer問題

2011.07.28 02:55AM
[求助]android mediaplayer問題

小弟最近正在嘗試開發遊戲,不過最近遇到了一個問題,就是小弟的遊戲音樂是用mediaplayer播放,之前在手機測試時正常,但今天測試時卻發生同時播放兩個同樣的背景音樂,小弟遊戲設置為一進入遊戲開始選單會播放一個背景音樂,但卻發生同個音樂同時有兩個在播放,而遊戲開始切換另一首背景音樂時發現,有一個能夠因我的設置而stop(),但另一個卻會繼續播放,但小弟只有設置一個mediaplayer來循環播放那個背景音樂,卻不知為何會重疊多播放一次,小弟試著不要start()後發現兩者皆不會播放,但小弟就是找不到原因,而在模擬器上測試為正常,不曉得是不是和手機有關係?

4 則回應

  •  stop()之後有試過rsset()、release()嗎?
    surfaceDestroyed()有做音樂處理嗎?

    2011-08-01
  • 你是有跳轉頁面嗎?

    你這邊是開啟關閉音樂的判斷而已

    如果有跳轉頁面,我需要的是生命周期的部分

    不然貼整個程式碼應該比較好判斷,

    2011-07-31
  •  把會動到生命週期的部分貼出來

    OnResume , OnStart 那些

    你有開始或停止 media 的部分

    2011-07-29
    • Kerash Huang wrote:

       把會動到生命週期的部分貼出來

      OnResume , OnStart 那些

      你有開始或停止 media 的部分

       

        public void playWelcomeViewBackgroundMusic(){
        if(activity.musicOn && activity.welcomeViewBackgroundMusic != null){
         activity.welcomeViewBackgroundMusic.setLooping(true);
         activity.welcomeViewBackgroundMusic.start();
        }
        else{
         activity.welcomeViewBackgroundMusic.stop();
         try{
          activity.welcomeViewBackgroundMusic.prepare();
         }catch(Exception e){
          e.printStackTrace();
         }
        }
       }
       public void stopWelcomeViewMusic(){
        if(activity.welcomeViewBackgroundMusic.isPlaying()){
         activity.welcomeViewBackgroundMusic.stop();
         try{
          activity.welcomeViewBackgroundMusic.prepare();
         }catch(Exception e){
          e.printStackTrace();
         }
        }
       }

       

      這是小弟寫的其中一個surfaceview的方法,小弟有兩個surfaceview,兩個surfaceview的play跟stop方法都一樣,再切換到另一個surfaceview之前先將原本surfaceview播放的音樂stop,在play要切換的sufaceview的音樂

      2011-07-30