0
私は過去3日間この問題を解決するために取り組んでおり、動作させることはできません。 uriを使用しているAndroidメディアプレイヤーがアプリのクラッシュを引き起こします
- を開き、ファイルブラウザとオーディオファイル:これらは私のアプリのステップでありますファイルが選択されています
- 再生ボタンを押してサウンドファイルを再生します
- この時点でサウンドファイルが再生されますが、アプリケーションを終了して再び開いて、アプリケーションがクラッシュする同じサウンドファイルを再生しようとしますフォローINGのエラー:
致命的な例外: 内容:://com.android.providers.media.documents/document/
Process: com.arcitech.developer.ultimatesoundboard, PID: 22967
java.lang.NullPointerException: Attempt to invoke virtual method 'void android.media.MediaPlayer.start()' on a null object reference
at com.arcitech.developer.ultimatesoundboard.activities.ItemDetailFragment$4.onClick(ItemDetailFragment.java:153)
at android.view.View.performClick(View.java:5156)
at android.view.View$PerformClick.run(View.java:20755)
at android.os.Handler.handleCallback(Handler.java:739)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:145)
at android.app.ActivityThread.main(ActivityThread.java:5835)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1399)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1194)
私は、データベースに保存していたファイルパス(URI)がメインオーディオ%の3A15790
と私が使用していたコードは、フラグメントのonCreateViewに位置しています:によると
MediaPlayer m;
playSound.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (m != null) {
m.stop();
m.release();
m = null;
}
m = MediaPlayer.create(getActivity(), Uri.parse(mItem.filePath));
m.start();
m.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
@Override
public void onCompletion(MediaPlayer m) {
countdownTimerHandler.removeCallbacks(countdownTimerRunnable);
}
});
}
});
MediaPlayerが初期化されていません。これを見て:http://stackoverflow.com/questions/7882851/mediaplayer-create-always-returns-null –
ありがとう、しかし、私の問題の解決策ではない、あなたが私を送ったリンクは、破損したファイル、使用しているファイルが壊れていないマイメディアプレーヤーが初期化されます。実際に私のコードはあなたが私に送ったリンクと全く違うものではありません!しかし、アドバイスをいただきありがとうございました。 – user2029541