ต้องใช้ Content Provider สำหรับ Local Files
Android WebView ไม่เข้าถึงไฟล์ Local ได้โดยตรง ต้องผ่าน Content Provider
1. Manifest: ประกาศ Provider
<provider
android:name="MyDataContentProvider"
android:authorities="com.myapp" />
2. Implement ContentProvider.openFile()
public ParcelFileDescriptor openFile(Uri uri, String mode) {
String path = uri.getPath(); // /mypath/video.mp4
File file = new File(path);
return ParcelFileDescriptor.open(file, ParcelFileDescriptor.MODE_READ_ONLY);
}
3. HTML Video Source
<video controls>
<source src="content://com.myapp/mypath/video.mp4" type="video/mp4">
</video>
ใช้ content:// Scheme ผ่าน Authority ที่ประกาศ