私はSDカードに保存されたmp3ファイルを再生しようとしています。私はエミュレータを使用していませんが、Samsung Galaxy S3とcyanogenmod 13 android 6.0を使用しています。SDカードへのuri方法mp3ファイル
まず私は
Uri.parse(Environment.getExternalStorageDirectory().getPath()+"/gato.mp3")
と試みたが、
Environment.getExternalStorageDirectory().getPath()
は/ストレージに私を取得//0をエミュレート。
- 内蔵ストレージは/ /ストレージに置か/ 0エミュレートされています。自分の携帯電話でのファイルマネージャで は私が3つのメモリ記憶場所を参照してください。
- sdcard1は/ storage/FE97-A11B
- である。
私のコンピュータから見たものとは異なります(sdcard1と内部ストレージのみ)。
内部とsdcard1の両方にファイル "gato.mp3"を置くことができませんでした。確認できます。しかし、私のファイルに私を取得する必要がありますパス/storage/emulated/0/gato.mp3を与える
Environment.getExternalStorageDirectory().getPath()+"/gato.mp3"
で、また/ストレージ/ FE97-A11Bへのパスを手動で設定しようとしています/gato.mp3、uriで作成されたmediaplayerはnullであり、ファイルは見つかりません。 コンピュータエクスプローラに表示されるパスを試しても同じです。
誰もがファイルを見つけることができない理由を知っていますか? "/"を削除しようとしましたが、 "mnt"を追加してパスに何かがないかどうかを確認しましたが、何も動作していないようです。
ありがとうございました!チェックする
私のコードは、単に機能TV1は、TextViewにあるので、私は、URIが指しているどのパスを確認でき
public void ejecutar(View v) {
Uri datos = Uri.parse(Environment.getExternalStorageDirectory().getPath()+"/gato.mp3");
MediaPlayer mp = MediaPlayer.create(this, datos);
if (mp != null) {
mp.start();
}
else{ tv1.setText(datos.toString());}
です。
これは主な経路です。私はあなたが提案したようにファイルメディアを作成しました。私はmedia.toString()を出力し、実際には/storage/emulated/0/gato.mp3にファイルがあります。私が正しいことをしているかどうかはわかりません。私は、Mediaplayer mp = new Mediaplayer()を作成しました。 設定した後: mp.setDataSource(media.getAbsolutePath()) Androidスタジオはtry {} catch {}でラップする必要があり、mp.start()を呼び出しても何も起こりません。 MediaPlayerで何かを初期化するのを忘れましたか? ありがとう – Oscarb