MediaMetadataRetriever setDataSource throws IllegalArgumentException

后端 未结 5 1704
一个人的身影
一个人的身影 2020-12-01 14:18

I\'m trying to get the size of a remote video using this class and i\'m getting IllegalArgumentException if the video is remote.

the video is an mp4 stored in one se

5条回答
  •  离开以前
    2020-12-01 15:06

    Maybe you are running into this bug. If so try:

    try {
        MediaMetadataRetriever retriever = new  MediaMetadataRetriever();
        Bitmap bmp = null;      
        retriever.setDataSource("http://www.myweb.com/myvideo.mp4", new HashMap());
        bmp = retriever.getFrameAtTime();           
        videoHeight = (int) (bmp.getHeight()*((float)getIntWidth()/bmp.getWidth()));
    } catch (Exception e) {
        e.printStackTrace();
    }
    

    If that doesn't work you can always try FFmpegMediaMetadataRetriever:

    FFmpegMediaMetadataRetriever retriever = new  FFmpegMediaMetadataRetriever();
    
    try {
        Bitmap bmp = null;      
        retriever.setDataSource("http://www.myweb.com/myvideo.mp4"));
        bmp = retriever.getFrameAtTime();           
        videoHeight = (int) (bmp.getHeight()*((float)getIntWidth()/bmp.getWidth()));
    } catch (Exception e) {
        e.printStackTrace();
    }
    
    retriever.release();
    

提交回复
热议问题