2011-01-10 4 views

답변

2

나는 MediaPlayer으로 경기를 보지 못했지만, release() 전화없이 시도 할 것입니다. This example은 사용하지 않습니다. 그리고 docs은 재생 한 후 호출 할 수있는 정리 방법의 말 : 이 MediaPlayer를 객체와 연관된

자원을 해방합니다. MediaPlayer를 사용하면이 메서드를 호출하는 것이 좋습니다.

+0

(). – Androider

1

저는 여러분이 생성자를 엉망으로 만들고 있다고 생각합니다. 정적으로 MediaPlayer를 인스턴스화 할 수 있습니다 : MediaPlayer.create(Context context, int resid), 가장 쉬운 방법은 play()으로 전화하면됩니다. 또한 유효한 컨텍스트가 필요합니다. 즉, Activity 또는 Service 내에서 MediaPlayer를 만드는 경우 "this"를 컨텍스트로 전달하십시오.

는 또한 "정상"생성자 MediaPlayer()을 사용할 수 있지만, 당신은 명시 적으로 play() 전에 setDataSource()prepare()에 전화를 할 것입니다.

게다가 Grzegorz가 작성한 것처럼 play() 바로 뒤에 release()을 호출하는 것은 좋은 생각이 아닙니다.

0

이 샘플을 folow 수 있습니다 : 그것은 심지어 릴리스없이 나를 위해 작동하지 않습니다

public void audioPlayer(String path, String fileName){ 
    //set up MediaPlayer  
    MediaPlayer mp = new MediaPlayer(); 

    try { 
     mp.setDataSource(path+"/"+fileName); 
    } catch (IllegalArgumentException e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } catch (IllegalStateException e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } catch (IOException e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } 
    try { 
     mp.prepare(); 
    } catch (IllegalStateException e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } catch (IOException e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } 
    mp.start(); 
} 
관련 문제