phuochau / react-native-thumbnail

Get thumbnail from local media. Currently, it only supports for video.
MIT License
135 stars 104 forks source link

是否能获取网络视频的封面,现在会报错 #50

Open yuanbolin opened 4 years ago

duongtungls commented 4 years ago

你可以用https://github.com/itinance/react-native-fs 下载视频成为一个 file 然后用 RNThumbnail 取thumbnail

const url = '/path/to/remote/file'
const filePath = RNFS.DocumentDirectoryPath + '/video.mp4';

RNFS.downloadFile(url, filePath).promise.then(res => {
  RNThumbnail.get(filePath).then((result) => {
    console.log(result.path); // thumbnail path
  })
});
yuanbolin commented 4 years ago

会出现偶尔会出错的情况吗,我这边偶尔会失败,

yuanbolin commented 4 years ago

let thumbnail = await RNThumbnail.get(video.path); 偶尔会失败取不到

duongtungls commented 4 years ago

@wulala1997 什么原因?有log吗?

try {
  let thumbnail = await RNThumbnail.get(video.path);
} catch (e) {
  console.error(e)
}

会有log

yuanbolin commented 4 years ago

处理的视频==> file:///storage/emulated/0/Pictures/video-2d880eef-a48a-4087-8239-cd0f2f3704058393300293092977467.mp4

Error: Attempt to invoke virtual method 'boolean android.graphics.Bitmap.compress(android.graphics.Bitmap$CompressFormat, int, java.io.OutputStream)' on a null object reference Error: Attempt to invoke virtual method 'boolean android.graphics.Bitmap.compress(android.graphics.Bitmap$CompressFormat, int, java.io.OutputStream)' on a null object reference at createErrorFromErrorData (blob:http://localhost:8081/adc8e4f3-6ae3-4477-b98c-04a67572c11c:14608:17) at blob:http://localhost:8081/adc8e4f3-6ae3-4477-b98c-04a67572c11c:14567:27 at MessageQueue.invokeCallback (blob:http://localhost:8081/adc8e4f3-6ae3-4477-b98c-04a67572c11c:15429:18) at blob:http://localhost:8081/adc8e4f3-6ae3-4477-b98c-04a67572c11c:15155:18 at MessageQueue.guard (blob:http://localhost:8081/adc8e4f3-6ae3-4477-b98c-04a67572c11c:15343:13) at MessageQueue.invokeCallbackAndReturnFlushedQueue (blob:http://localhost:8081/adc8e4f3-6ae3-4477-b98c-04a67572c11c:15154:14) at http://localhost:8081/debugger-ui/debuggerWorker.js:80:58

yuanbolin commented 4 years ago

------------------ 原始邮件 ------------------ 发件人: "Duong Cong Tung"notifications@github.com; 发送时间: 2019年9月27日(星期五) 中午11:39 收件人: "phuochau/react-native-thumbnail"react-native-thumbnail@noreply.github.com; 抄送: "苑博林"1252432332@qq.com; "Mention"mention@noreply.github.com; 主题: Re: [phuochau/react-native-thumbnail] 是否能获取网络视频的封面,现在会报错 (#50)

@wulala1997 什么原因?有log吗? try { let thumbnail = await RNThumbnail.get(video.path); } catch (e) { console.error(e) }
会有log

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub, or mute the thread.

duongtungls commented 4 years ago

可能是错误在这 image.compress(Bitmap.CompressFormat.JPEG, 100, fOut);

因为

Bitmap image = retriever.getFrameAtTime(1000000, MediaMetadataRetriever.OPTION_CLOSEST_SYNC);

所以视频不到1秒那就没有 retriever.getFrameAtTime(1000000, MediaMetadataRetriever.OPTION_CLOSEST_SYNC); 你检查你的视频是否不到一秒。

yuanbolin commented 4 years ago

好的,十分感谢.抱歉打扰您中午休息了

duongtungls commented 4 years ago

没问题,我在越南现在还是工作时间。