2011-08-23 1 views
0

내가 만든 애니메이션에 사운드를 추가하고 싶습니다. 애니메이션이 시작될 때마다 소리도 시작되어야하지만 사운드를 시작할 수는 없습니다.Android, 작동 할 MediaPlayer 클래스를 가져올 수 없습니다.

모두 여기에 애니메이션으로 괜찮 코드 조각입니다 :

public class TestActivity extends Activity { 
AnimationDrawable anim; 
MediaPlayer mp; 

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 

    playAnimation(R.id.frameLayout1,R.drawable.anim2,R.raw.bang); 
} 

public void playAnimation(int FrameLayoutAddress, int animationXMLAdress, int soundAddress) 
{ 
    mp = MediaPlayer.create(this.getApplicationContext(), soundAddress); 
    mp.start(); // error here 

    FrameLayout imgView = (FrameLayout)findViewById(FrameLayoutAddress); 
    imgView.setBackgroundResource(animationXMLAdress); 
    anim = (AnimationDrawable) imgView.getBackground(); 
    imgView.post(new Runnable() 
    {  
     @Override 
     public void run() 
     { 
      anim.start(); 

     } 
    });  
} 

}

사람이 내 실수를 지적 할 수 있습니까? 시간 내 주셔서 감사드립니다.

+0

무엇이 오류입니까? – Asahi

+1

@Pumpkin :'create (...)'가 실패하면, mp는'null'이 될 것입니다 -'start()'를 호출하기 전에 null이 아닌지 확인하십시오. 'R.raw.bang'은 유효한 사운드 파일의 유효한 리소스 ID입니까? – Squonk

답변

1

mp.start() 전에 mp.prepare()으로 전화해야합니다. 또한 을 호출하기 전에 MediaPlayer을 재설정하는 것이 좋습니다.