文档章节

Android获取网络视频的宽高

22m
 22m
发布于 2017/05/03 16:34
字数 136
阅读 81
收藏 0
package com.lgkj.webviewmoving;

import android.media.MediaMetadataRetriever;
import android.util.Log;

import java.util.HashMap;

public class VideoUtils {
    private VideoInformations videoInformations;

    public VideoUtils(VideoInformations videoInformations) {
        this.videoInformations = videoInformations;
    }

    //获取视频的宽高,和时长
    private void getVideoWidthAndHeightAndVideoTimes(String videoUrl) {
        final MediaMetadataRetriever mediaMetadataRetriever = new MediaMetadataRetriever();
        mediaMetadataRetriever.setDataSource(videoUrl, new HashMap<String, String>());
        new Thread() {
            @Override
            public void run() {
                float videoTimes = 0;
                float videoWidth = 0;
                float videoHeight = 0;
                super.run();
                try {
                    videoTimes = Float.parseFloat(mediaMetadataRetriever.extractMetadata(android.media.MediaMetadataRetriever.METADATA_KEY_DURATION));
                    videoWidth = Float.parseFloat(mediaMetadataRetriever.extractMetadata(MediaMetadataRetriever.METADATA_KEY_VIDEO_WIDTH));
                    videoHeight = Float.parseFloat(mediaMetadataRetriever.extractMetadata(MediaMetadataRetriever.METADATA_KEY_VIDEO_HEIGHT));
                } catch (Exception e) {
                    videoTimes = 0;
                    videoWidth = 0;
                    videoHeight = 0;
                } finally {
                    Log.i("zzm", "视频的宽:  " + videoWidth);
                    Log.i("zzm", "视频的高:  " + videoHeight);
                    Log.i("zzm", "视频的长度:  " + videoTimes);
                    mediaMetadataRetriever.release();
                    videoInformations.dealWithVideoInformation(videoWidth, videoHeight, videoTimes);
                }
            }
        }.start();
    }

    interface VideoInformations {
        void dealWithVideoInformation(float w, float h, float vt);
    }
}

© 著作权归作者所有

共有 人打赏支持
22m

22m

粉丝 0
博文 34
码字总数 32074
作品 0
成都
程序员
私信 提问
[Android学习笔记八] 使用VideoView屏幕方向发生变化,视频方向自动切换

一个Activity主要用来做播放视频使用,并且是全屏播放的话,主要采用横屏(Landscape orientation 显示宽度大于高度)显示视频,那么可以指定Activity的属性android:screenOrientation="land...

secondriver
2018/06/26
0
0
Android ImageView图片自适应

Android ImageView图片自适应 (2011-12-07 11:28:25) 转载▼ 网络上下载下来的图片自适应:android:adjustViewBounds="true"(其详细解释在下面) <ImageView android:id="@+id/dynamicitemi......

Jonson
2013/12/06
0
0
Android ImageView图片自适应

网络上下载下来的图片自适应:android:adjustViewBounds="true"(其详细解释在下面) <ImageView android:id="@+id/dynamicitemimage" android:layoutwidth="wrapcontent" android:layouthe......

Jonson
2014/05/06
0
0
Android 使用Glide加载网络图片等比例缩放

在做android图片加载的时候,由于手机屏幕受限,很多大图加载过来的时候,我们要求等比例缩放,比如按照固定的宽度,等比例缩放高度,使得图片的尺寸比例得到相应的缩放,但图片没有变形。显...

记录自己的点点滴滴
2018/08/06
0
0
「音视频直播技术」Android下视频H264编码

前言 今天为大家介绍一下音视频直播技术中的视频编码。在移动端通过Camera采集到视频数据后,我们不会直接将它发送出去。因为采集后的视频数据量非常大,比如 1280x720 分辨率的一帧数据,就...

音视频直播技术专家
2017/08/30
0
0

没有更多内容

加载失败,请刷新页面

加载更多

协议简史:如何学习网络协议?

大学时,学到网络协议的7层模型时,老师教了大家一个顺口溜:物数网传会表应。并说这是重点,年年必考,5分的题目摆在这里,你们爱背不背。 考试的时候,果然遇到这个问题,搜索枯肠,只能想...

Java干货分享
26分钟前
2
0
集合练习

package package1;import java.util.ArrayList;import java.util.Collection;import java.util.HashMap;import java.util.List;import java.util.ListIterator;import java.ut......

小橙子的曼曼
29分钟前
1
0
雷军亲自打造的套餐了解下:用多少付多少

12月28日消息,小米科技创始人兼CEO雷军微博表示,小米移动任我行套餐方案,原则上就是明明白白消费,用多少付多少,不用不花钱!上网、电话和短信都是一毛钱,上网0.1元/M,电话0.1元/分钟,...

linux-tao
50分钟前
1
0
在 Ubuntu 上为 CentOS 编译 Rust 程序

现在 CentOS 8 还没出来,最新的是 CentOS 7.6,上面搭载的 glibc 版本是 2.17,都已经是 2012 年那时候的版本了。 现在开发者比较常用的桌面 Linux 系统,比如 Ubuntu / Debian / Mint / A...

helloclia
今天
17
3
Android Multimedia框架总结(一)MediaPlayer介绍之状态图及生命周期

前言:从本篇开始,将进入Multimedia框架,包含MediaPlayer, Camera, Surface, MediaRecord, 接下来几篇都是MediaPlayer相关。同样看下Agenda如下: MediaPlayer的状态图 Idle 状态 End 状态...

天王盖地虎626
今天
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部