Tôi đang cố gắng để chèn video vào MediaStore
, giống như cách nó có thể lưu trữ hình ảnh sử dụng phương pháp này:Chèn video vào MediaStore
MediaStore.Images.Media.insertImage(getContentResolver(), imagePath, null, null)
Kể từ khi không có phương pháp tương tự trên MediaStore.Video.Media
, những gì tôi cố gắng làm là chèn một bản ghi vào MediaStore.Video.Media.EXTERNAL_CONTENT_URI
và sau đó sao chép các tập tin đến đích, như hình dưới đây:
ContentValues values = new ContentValues();
values.put(MediaStore.Video.Media.TITLE, "Title1");
values.put(MediaStore.Video.Media.MIME_TYPE, "video/mp4");
values.put(MediaStore.Video.Media.DATA, videoPath);
Uri uri = cr.insert(MediaStore.Video.Media.EXTERNAL_CONTENT_URI, values);
try {
OutputStream os = cr.openOutputStream(uri);
...
...
} (FileNotFoundException e) {
cr.delete(uri, null, null);
}
các uri
trở là non-null
theo hình thức content://media/external/video/media/{id}
, có vẻ đúng.
Nhưng sau đó khi cr.openOutputStream(uri);
được gỡ bỏ, hãy gửi FileNotFoundException
.
Bit cuối cùng này tương tự như những gì được thực hiện cho Images.Media.insertImage xem mã nguồn của nó.
Btw, tôi có quyền WRITE_EXTERNAL_STORAGE
. Ngoài ra, tôi đang thử nghiệm trên 4.3 & 4.4.
Tôi gặp vấn đề tương tự trên Nexus 5 của mình với 4.4.4. – Erik
mọi giải pháp mọi người? – ARO
bạn có tìm thấy giải pháp nào không? –