綁定帳號登入

Android 台灣中文網

打印 上一主題 下一主題

[求助] postInvalidate() 能只刷新畫面嗎?

[複製連結] 查看: 1865|回覆: 2|好評: 0
回帖獎勵 4 個碎鑽      回覆本帖可獲得 2 個碎鑽獎勵! 每人限 1 次(中獎概率 50%)
跳轉到指定樓層
樓主
mingminglam | 收聽TA | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
發表於 2013-6-1 15:09

馬上加入Android 台灣中文網,立即免費下載應用遊戲。

您需要 登錄 才可以下載或查看,沒有帳號?註冊

x
我動用了postInvalidate()去刷新畫面制做了動畫
可是我希望在程式中能播放數秒音效配合動畫
音效程式碼在這:
static SoundPool sp;
static HashMap<Integer, Integer> map;

在onDraw()裡:
sp = new SoundPool(1, AudioManager.STREAM_MUSIC, 100);
map = new HashMap<Integer, Integer>();
map.put(R.raw.explosion, sp.load(context, R.raw.explosion, 1));
playSound(R.raw.explosion);

public static void playSound(int resId)
{
  Integer soundId = map.get(resId);
  if(soundId != null)
  sp.play(R.raw.explosion, 1, 1, 1, 0, 1);
}

可是因為我每秒都會刷新(postInvalidate())
音效只播放1秒就會重新播放

有方法令音效獨立出來不受刷新影響嗎?
「用Android 就來APK.TW」,快來加入粉絲吧!
Android 台灣中文網(APK.TW)
收藏收藏 分享分享 分享專題
用Android 就來Android 台灣中文網(https://apk.tw)
回覆

使用道具 舉報

沙發
sheng760504 | 收聽TA | 只看該作者
發表於 2013-6-4 10:37
加個判斷吧...不然不要寫在ondrow裡
用Android 就來Android 台灣中文網(https://apk.tw)
回覆 支持 反對

使用道具 舉報

板凳
mike110631 | 收聽TA | 只看該作者
發表於 2013-6-6 23:19

回帖獎勵 +2 個碎鑽

你當然可以寫判斷式,讓他還沒播完就不要再呼叫一次

但是你最好的方法,改程式裡面的結構,讓你要播動畫時呼叫一次音樂
動畫結束,音樂結束

在想看看吧!!!

用Android 就來Android 台灣中文網(https://apk.tw)
回覆 支持 反對

使用道具 舉報

您需要登錄後才可以回帖 登錄 | 註冊

本版積分規則