質問: android studio のMediaPlayerで動画が読み込めない
回答: 参考にしているサイトが古すぎます。 多分Android2.0ぐらい?(8年くらい前) 現在一般的に世に出ている最新は、Android10です。 エラーになる原因についてですが、 全て説明するのは大変なのでまとめると以下ができていません。 ・SDカードの直パス禁止 ・ファイルアクセス方法のストレージ アクセス フレームワーク ・外部ストレージ参照権限のランタイムパーミッション ・直接外部ファイルパス参照禁止 質問者さんの端末がAndroid10と仮定して、 一番ソースコードを修正しなくていい方法で直すなら まず、 1 SDカードに再生したいファイルを置く 2 いったんスマホの電源を切り再起動(MediaStore更新) 3 AndroidManifest.xmlに以下追加 4映像再生のファイルパス設定を以下に修正 @Override public void surfaceCreated(SurfaceHolder paramSurfaceHolder) { String fileName = "20200425_155605.mp4";// 再生したいファイル名 String path = ""; Cursor cursor = getContentResolver().query(MediaStore.Video.Media.EXTERNAL_CONTENT_URI, new String[]{MediaStore.Video.Media.DATA}, MediaStore.Video.Media.DISPLAY_NAME +"=?", new String[]{fileName}, null); if (cursor != null && cursor.moveToFirst()) path = cursor.getString(0); try { Uri uri = Uri.fromFile(new File(path)); mp = new MediaPlayer(); mp.setDataSource( Objects.requireNonNull(getContentResolver().openFile(uri, "r", null)).getFileDescriptor()); 5アプリインストール 6設定アプリから、本アプリの情報を表示 7権限の「ストレージ」を許可 8もう一度アプリを起動すると、動くはず