参考にしているサイトが古すぎます。
多分Android2.0ぐらい?(8年くらい前)
現在一般的に世に出ている最新は、Android10です。
エラーになる原因についてですが、
全て説明するのは大変なのでまとめると以下ができていません。
・SDカードの直パス禁止
・ファイルアクセス方法のストレージ アクセス フレームワーク
・外部ストレージ参照権限のランタイムパーミッション
・直接外部ファイルパス参照禁止
質問者さんの端末がAndroid10と仮定して、
一番ソースコードを修正しなくていい方法で直すなら
まず、
① SDカードに再生したいファイルを置く
② いったんスマホの電源を切り再起動(MediaStore更新)
③ AndroidManifest.xmlに以下追加
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
④映像再生のファイルパス設定を以下に修正
@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());
⑤アプリインストール
⑥設定アプリから、本アプリの情報を表示
⑦権限の「ストレージ」を許可
⑧もう一度アプリを起動すると、動くはず