내 문제는 다음과 같습니다. 정말 간단한 앱을 만들고 싶습니다. 버튼을 누르면 노래가 재생됩니다.Android MediaPlayer 만들기 실패
public class MainActivity extends ActionBarActivity {
int counter;
Button add1;
Button sub1;
Button sound;
TextView display;
MediaPlayer mySound;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.fragment_main);
if (mySound==null){
mySound = MediaPlayer.create(this, R.raw.tetris_theme);
}
else { mySound.release();
}
sound = (Button) findViewById(R.id.button1);
display = (TextView) findViewById(R.id.textView2);
sound.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//TODO Auto-generated method stub
if (mySound==null){
display.setText("Error");
}
else {
mySound.start();
}
}
});
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml.
int id = item.getItemId();
if (id == R.id.action_settings) {
return true;
}
return super.onOptionsItemSelected(item);
}
/**
* A placeholder fragment containing a simple view.
*/
public static class PlaceholderFragment extends Fragment {
public PlaceholderFragment() {
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.fragment_main, container, false);
return rootView;
}
}
}
내가 응용 프로그램을 실행하고 버튼을 누르면이
그래서 (내가 mySound
가 null 여부를 확인 여부 때문에) "오류"표시 "소리", 그 의미 생각 그 mySound
MediaPlayer를 I created는 null입니다. 나는 로그 캣을 확인하고 그것을 보여 다음
11-25 14:27:02.900: E/MediaPlayer(1026): error (1, -2147483648)
11-25 14:27:02.920: D/MediaPlayer(1026): create failed:
11-25 14:27:02.920: D/MediaPlayer(1026): java.io.IOException: Prepare failed.: status=0x1
11-25 14:27:02.920: D/MediaPlayer(1026): at android.media.MediaPlayer.prepare(Native Method)
11-25 14:27:02.920: D/MediaPlayer(1026): at android.media.MediaPlayer.create(MediaPlayer.java:850)
11-25 14:27:02.920: D/MediaPlayer(1026): at com.example.simpleapp.MainActivity.onCreate(MainActivity.java:49)
11-25 14:27:02.920: D/MediaPlayer(1026): at android.app.Activity.performCreate(Activity.java:5242)
11-25 14:27:02.920: D/MediaPlayer(1026): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087)
11-25 14:27:02.920: D/MediaPlayer(1026): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2161)
11-25 14:27:02.920: D/MediaPlayer(1026): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2258)
11-25 14:27:02.920: D/MediaPlayer(1026): at android.app.ActivityThread.access$800(ActivityThread.java:138)
11-25 14:27:02.920: D/MediaPlayer(1026): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1209)
11-25 14:27:02.920: D/MediaPlayer(1026): at android.os.Handler.dispatchMessage(Handler.java:102)
11-25 14:27:02.920: D/MediaPlayer(1026): at android.os.Looper.loop(Looper.java:136)
11-25 14:27:02.920: D/MediaPlayer(1026): at android.app.ActivityThread.main(ActivityThread.java:5026)
11-25 14:27:02.920: D/MediaPlayer(1026): at java.lang.reflect.Method.invokeNative(Native Method)
11-25 14:27:02.920: D/MediaPlayer(1026): at java.lang.reflect.Method.invoke(Method.java:515)
11-25 14:27:02.920: D/MediaPlayer(1026): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:777)
11-25 14:27:02.920: D/MediaPlayer(1026): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:602)
11-25 14:27:02.920: D/MediaPlayer(1026): at dalvik.system.NativeStart.main(Native Method)
내가 준비가 실패했기 때문에, 수단이 실패 만드는 것이 추측하지만, 그 이유는 무엇입니까? 이 웹 사이트에서 이미이 문제를 검색 한 결과 수 백 가지의 사례가 발견되었지만 해결 방법 중 이 없다고 생각합니다.
재생하려는 파일이 mp3이며 내 R.raw 폴더에 있습니다. 아무런 문제없이 PC에서 재생할 수 있으므로 손상되거나 손상 될 수 없습니다.
나는 이미 .ogg와 .aac과 같은 다른 유형으로 시도했지만 아무것도 (!!) 작동하지 않습니다.
흠이 시도 미디어 재생을 시작
mySound.start()
를 사용할 수있는 이름tetristheme
에있을 shoouldf하지만 작업 ... 같은 오류가 돌아가신't. 나는 이유를 알 수 없다. 어쨌든 제안 해 주셔서 감사합니다 – masterC
나에게도 효과가 없었습니다 ... 그밖에 무엇을 할 수 있습니까? –