2013-06-21 60 views
1

我運行的應用程序需要播放存儲在URL某處的音頻。當播放運行服務器url音頻的媒體播放器時,Ui更改停止

在播放網址之前,我想將播放按鈕的圖像更改爲暫停。

我很難在參考文獻中做。

用戶界面在播放URL上的音頻後立即更改,播放服務器URL需要5-10秒。如何在播放音頻之前更改按鈕的圖像。

任何人都可以請解釋我爲什麼會發生這種情況,可能的解決方案是什麼。

請看看在我的代碼: -

((Button)v).setBackgroundResource(R.drawable.pause); 
       PlayPauseBtn.setId(1); 

       Toast.makeText(RadioActivity.this, "Loading...", Toast.LENGTH_LONG).show(); 
       MediaController.mediaPlayStart(R.raw.acoustic_loop_bgm, 
         RadioActivity.this.getApplicationContext()); 


public static void mediaPlayStart(int resourcesId,final Context m_Context) { 
    try { 
     mp = new MediaPlayer(); 

     mp.setDataSource(m_Context, Uri.parse(Contants.audioURL)); 
     mp.prepare(); 
     mp.setAudioStreamType(AudioManager.STREAM_MUSIC); 
     mp.setLooping(true); 

     try { 
      mp.start(); 
     } catch (Exception e) { 
      // TODO: handle exception 
     } 
    } catch (Exception e) { 
     // TODO: handle exception 
     System.out.println("#####THE EXCEPTION IN THE MEDIA PLAYER PLAY==="+e.getMessage()); 
    } 
} 

這裏下面是播放聲音之前,我logcat的。

06-21 17:15:17.661: W/KeyCharacterMap(1005): No keyboard for id 0 

06-21 17:15:17.661:W/KeyCharacterMap(1005):使用默認鍵盤佈局/system/usr/keychars/qwerty.kcm.bin 06-21 17:15:21.910:我/System.out(1005):00000000000000 06-21 17:15:21.910:I/System.out(1005):2222222222 06-21 17:15:22.080:D/dalvikvm(1005):GC_FOR_MALLOC釋放了3592個對象/在65μs的 06-21 17 199296字節:15:26.140:d/MediaPlayer的(1005):可以在客戶端無法打開文件,試圖服務器端

回答

5

這也許是因爲你使用

mediaPlayer.prepare(); 

您更好地使用異步方法:

mediaPlayer.asyncPrepare(); 

這不會凍結您的應用程序,你的圖標將立刻改變。

編輯:

mp.setDataSource(url); 
mp.setOnPreparedListener(this); 
mp.prepareAsync(); 

public void onPrepared(MediaPlayer player) { 
    mp.start(); 
} 
+1

UI chnaged成功但現在它不工作沒有音頻播放。 –

+0

06-21 15:42:32.171:E/MediaPlayer(974):error(-38,0) –

+0

請將您的第一篇文章發佈到整個logcaton。 – marshallino16

相關問題