MediaMetadataRetriever.getFrameAtTime在工作线程中返回null

时间:2017-02-24 05:54:34

标签: java android android-mediaplayer

我使用MediaMetadataRetriever从原始的mp4文件中获取视频帧,代码为:

fn foo() -> Option<String> {
    std::env::home_dir().and_then(|d| {
        d.file_name()
           .and_then(|f| f.to_str())
           .map(String::from)
    })
}

如果我在主线程中运行这些代码,它们运行良好,我可以得到一个非空的bmp。但是,如果在AsyncTask的doInBackground方法中运行它们,我总是得到一个null bmp:

final MediaMetadataRetriever mmr = new MediaMetadataRetriever();
mmr.setDataSource(coverParams.mContext, coverParams.mUri);
final Bitmap bmp = mmr.getFrameAtTime(coverParams.mPositon,OPTION_CLOSEST);
mmr.release();

0 个答案:

没有答案