2012-04-21 2 views
1

활동이없는 클래스에서 android MediaPlayer를 사용하는 데 문제가 있습니다. 항상 컨텍스트 오류입니다. 여기에 도청 라인 :일반 클래스에서 mediaplayer 사용

MediaPlayer Shoot = MediaPlayer.create(this, R.raw.shot); 

지금 내가 서비스에 this를 사용하지 못할 알고있다, 그러나 나는 시도 다른 모든 물건 버그를주고 있었다.

제안 사항?

+0

잘 기술적으로 사용할 수의''Service'에 this'이 Context''확장한다. 당신은'this' 대신에'getApplicationContext()'를 시도 했습니까? – Squonk

+0

클래스가 이미 스레드를 확장하고 있으므로이 작업을 수행 할 수 없습니다. 나는 또한 Activity의 객체를 통해 getApplicationContext를 사용하려고 시도했지만 실패했다. – dorbt12

+0

Application의 하위 클래스를 만들고 MyApplication 또는 다른 것으로 호출하여 Manifest에 넣습니다. 그런 다음, 'MyApplication.getApplicatonContext()'를 호출하여 컨텍스트를 가져올 수 있습니다. – lenik

답변

0

시도 :

try { 
    MediaPlayer mp = new MediaPlayer(); 

    AssetFileDescriptor afd = getResources().openRawResourceFd(1); 
    if (afd != null) { 
     mp.setDataSource(afd.getFileDescriptor(), afd.getStartOffset(), afd.getLength()); 
     afd.close(); 
     mp.prepare(); 
     mp.start(); 
    } 
} catch (IllegalArgumentException e) { 
} catch (IllegalStateException e) { 
} catch (IOException e) { 
}