有可能在Android 4和上述显示从URL视频缩略图?(It is possible to dis

2019-07-04 15:47发布

两者的下面的工作原理上的仿真器(2.3.3)优良,但在真实设备上( Nexus S的 4.1.2)没有图像被显示为缩略图。 我也将尝试在运行Android 4 Emulator 。 如果我设置了默认android:srcImageView ,它不显示了呢。 这让我觉得,它被替换,但ImageView是空的。

public class MainActivity extends Activity {

    ImageView img;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        img = (ImageView)findViewById(R.id.img_thumbnail);
        new MyAsync().execute("http://commonsware.com/misc/test.mp4");
    }

    //This version is still not working, but it's more readable (edited: Selvin).
    public class MyAsync extends AsyncTask<String, Void, Bitmap>{

        @Override
        protected Bitmap doInBackground(String... objectURL) {
            //return ThumbnailUtils.createVideoThumbnail(objectURL[0], Thumbnails.MINI_KIND);
            return ThumbnailUtils.extractThumbnail(ThumbnailUtils.createVideoThumbnail(objectURL[0], Thumbnails.MINI_KIND), 100, 100);
        }

        @Override
        protected void onPostExecute(Bitmap result){
             img.setImageBitmap(result);
        }
    }
}

我知道,类似的问题已经被问过, 从远程视频网址Android设备显示的视频缩略图 ,但我已经尝试过这一点,同样的结果。

为什么没有在设备上这项工作,以及如何使它发挥作用?

Answer 1:

使用FFmpegMediaMetadataRetriever在所需位置提取的缩略图: FFmpegMediaMetadataRetriever



Answer 2:

这是不可能的Android和Java和据我所知,而无需下载整个视频任何其他语言(纠正我,如果我错了)。 这是有很好的理由让YouTube和其他大型视频服务,为获取视频的拇指提供了一个简单的API。 所以,如果在视频所在的服务器不支持这种API的调用你的运气不好。



Answer 3:

当试图从位于高速缓存文件夹的文件做缩略图上面临2.3同样的问题。 设置权限标志解决了这个问题:

videoFile.setReadable(true, false);


文章来源: It is possible to display a video thumbnail from a URL on Android 4 and above?