2012-07-06 4 views
3

소리 구성표를 여러 가지 방법으로 변경해 보았습니다. 나는 Uri와 SoundPool을 들여다 보았다. 그러나 나는 그들이 올바르게 사용하고 있는지 확신하지 못했다. 다음은 MediaPlayer의 작동 코드입니다.사운드가 Android 기기에서 작동하지 않습니다. 에뮬레이터에서 잘 작동합니다.

final Context context; 
MediaPlayer media; 

void play() 
{ 

media=MediaPlayer.create(context, R.raw.soundFile); 
media.start(); 
} 

내가 말했듯이 에뮬레이터에서 제대로 실행됩니다. 그것은 ogg 사운드 파일이지만 mp3와 wav를 시도했습니다. 지금까지

D/AndroidRuntime( 981): Shutting down VM 
W/dalvikvm( 981): threadid=1: thread exiting with uncaught exception (group=0x4 
0a9c228) 
E/AndroidRuntime( 981): FATAL EXCEPTION: main 
E/AndroidRuntime( 981): android.content.res.Resources$NotFoundException: File r 
es/raw/ouch.ogg from drawable resource ID #0x7f040000 
E/AndroidRuntime( 981):  at android.content.res.Resources.openRawResource 
Fd(Resources.java:1081) 
E/AndroidRuntime( 981):  at android.media.MediaPlayer.create(MediaPlayer. 
java:762) 
E/AndroidRuntime( 981):  at Seven.Circle.GameView.onTouchEvent(GameView.j 
ava:185) 
E/AndroidRuntime( 981):  at android.view.View.dispatchTouchEvent(View.jav 
a:5579) 
E/AndroidRuntime( 981):  at android.view.ViewGroup.dispatchTransformedTou 
chEvent(ViewGroup.java:1965) 
E/AndroidRuntime( 981):  at android.view.ViewGroup.dispatchTouchEvent(Vie 
wGroup.java:1692) 
E/AndroidRuntime( 981):  at android.view.ViewGroup.dispatchTransformedTou 
chEvent(ViewGroup.java:1965) 
E/AndroidRuntime( 981):  at android.view.ViewGroup.dispatchTouchEvent(Vie 
wGroup.java:1692) 
E/AndroidRuntime( 981):  at android.view.ViewGroup.dispatchTransformedTou 
chEvent(ViewGroup.java:1965) 
E/AndroidRuntime( 981):  at android.view.ViewGroup.dispatchTouchEvent(Vie 
wGroup.java:1692) 
E/AndroidRuntime( 981):  at com.android.internal.policy.impl.PhoneWindow$ 
DecorView.superDispatchTouchEvent(PhoneWindow.java:1982) 
E/AndroidRuntime( 981):  at com.android.internal.policy.impl.PhoneWindow. 
superDispatchTouchEvent(PhoneWindow.java:1441) 
E/AndroidRuntime( 981):  at android.app.Activity.dispatchTouchEvent(Activ 
ity.java:2414) 
E/AndroidRuntime( 981):  at com.android.internal.policy.impl.PhoneWindow$ 
DecorView.dispatchTouchEvent(PhoneWindow.java:1930) 
E/AndroidRuntime( 981):  at android.view.View.dispatchPointerEvent(View.j 
ava:5759) 
E/AndroidRuntime( 981):  at android.view.ViewRootImpl.deliverPointerEvent 
(ViewRootImpl.java:2963) 
E/AndroidRuntime( 981):  at android.view.ViewRootImpl.handleMessage(ViewR 
ootImpl.java:2522) 
E/AndroidRuntime( 981):  at android.view.ViewRootImpl.processInputEvents(
ViewRootImpl.java:862) 
E/AndroidRuntime( 981):  at android.view.ViewRootImpl.handleMessage(ViewR 
ootImpl.java:2531) 
E/AndroidRuntime( 981):  at android.os.Handler.dispatchMessage(Handler.ja 
va:99) 
E/AndroidRuntime( 981):  at android.os.Looper.loop(Looper.java:154) 
E/AndroidRuntime( 981):  at android.app.ActivityThread.main(ActivityThrea 
d.java:4894) 
E/AndroidRuntime( 981):  at java.lang.reflect.Method.invokeNative(Native 
Method) 
E/AndroidRuntime( 981):  at java.lang.reflect.Method.invoke(Method.java:5 
11) 
E/AndroidRuntime( 981):  at com.android.internal.os.ZygoteInit$MethodAndA 
rgsCaller.run(ZygoteInit.java:784) 
E/AndroidRuntime( 981):  at com.android.internal.os.ZygoteInit.main(Zygot 
eInit.java:551) 
E/AndroidRuntime( 981):  at dalvik.system.NativeStart.main(Native Method) 

E/AndroidRuntime( 981): Caused by: java.io.FileNotFoundException: This file can 
not be opened as a file descriptor; it is probably compressed 
E/AndroidRuntime( 981):  at android.content.res.AssetManager.openNonAsset 
FdNative(Native Method) 
E/AndroidRuntime( 981):  at android.content.res.AssetManager.openNonAsset 
Fd(AssetManager.java:503) 
E/AndroidRuntime( 981):  at android.content.res.Resources.openRawResource 
Fd(Resources.java:1078) 
E/AndroidRuntime( 981):  ... 26 more 

내가 발견하지 않았다 "E/AndroidRuntime (981) : 치명적인 예외 : 주요 E/AndroidRuntime (981) : android.content 여기

은 충돌에 대한 로그 파일입니다. res.Resources $ NotFoundException : 드로어 블 리소스 ID # 0x7f040000 에서 r es/raw/ouch.ogg 파일을 찾았습니다. 실제로 이것은 내가 찾고있는 오류입니다. 나는 빠른 수정에 대한 제안에 대해 열려있다. 그때까지는 디버깅을 계속할 것입니다.

+0

장치의 볼륨이 및/또는 켜져 ? 무례하거나 어리석은 질문을하려고하지는 않지만 때때로 사람들은 그런 종류의 물건을 확인하는 것을 잊어 버립니다. – BlackHatSamurai

+0

예 장치 볼륨이 켜져 있습니다. 나는 그것이 소리가 불릴 때 실제로 전화의 응용 프로그램이 충돌한다는 것을 지정하는 것을 잊었다. – Kevin

+1

우연히 충돌 로그를 제공 할 수 있습니까? – BlackHatSamurai

답변

0

오류의 LogCat 레코드를 제공하면 도움이 될 것입니다. 또한 거기에서 생성 된 오류 로그를보고 'U'가 '원인'태그를 발견하고 오류가 플래그 된 파일의 행 번호를 가리켜 야하는 관련 오류 메시지를 읽을 수 있는지 확인하십시오.

(편집 : 로그의 초점이 맞지 때문에 u는 로그에서 사용자가 만든 파일을 발견하고 나는 모든 것을 볼 수 없다면 당신은 볼 수 있습니다)

관련 문제