2014-07-02 4 views
0

Я только что сделал аквариум для рыбных аквариумов и хотел добавить звуковой эффект, когда пользователь прикасается к движущейся рыбе. К сожалению, я не знаю, как это сделать, потому что была сыграна только одна треть звукового клипа. Благодарен, если могут помочь некоторые эксперты. Здесь ниже мой код:Живые обои onTouchEvent ACTION_DOWN играют только 1/3 звукового клипа

@Override 
public void onTouchEvent(MotionEvent event) { 
if (event.getAction() == MotionEvent.ACTION_DOWN) { 

Region region1 = new Region(image1x, image1y, image1x+image1.getWidth(), 
image1y+image1.getHeight()); 


if(region1.contains((int)event.getX(), (int)event.getY())) 
{image1x=(int) (event.getX()+60); 

MediaPlayer myplayer = MediaPlayer.create(getBaseContext(), R.raw.hi); 
myplayer.setVolume(100, 100); 

myplayer.start();    
} 

Region region2 = new Region(image2x, image2y, 
image2x+image2.getWidth(),image2y+image2.getHeight()); 

if(region2.contains((int)event.getX(), (int)event.getY())) 
{ 

image2x=(int) (event.getX()-100); 

} super.onTouchEvent(event); 


    return; 
}   

} 
} 

ответ

0

Вы не должны создать MediaPlayer в о методе касания, лучше, чтобы объявить поле MediaPlayer, и создать его только один раз в WallpaperService OnCreate() метод, как это:

private MediaPlayer myPlayer; 

@Override 
public void onCreate() { 
    super.onCreate(); 
    myPlayer = MediaPlayer.create(getApplicationContext(), 
     R.raw.hi);      
} 

// то в методе onTouch вы начинаете звук:

@Override 
public void onTouchEvent(MotionEvent event) { 

// ... 

myPlayer.start(); 
} 

// который должен работать, а также экономить ресурсы.

+0

Oic .... Спасибо, что сообщили мне :) Звуковой эффект может работать сейчас. – Angela

+0

Рад помочь :) –