当前位置: 首页 > news >正文

广东省企业诚信建设促进会网站wordpress小工具放入用户中心

广东省企业诚信建设促进会网站,wordpress小工具放入用户中心,天猫商城入口,网站开发的软件有哪些Android音视频开发 - MediaMetadataRetriever 相关 MediaMetadataRetriever 是android中用于从媒体文件中提取元数据新的类. 可以获取音频,视频和图像文件的各种信息,如时长,标题,封面等. 1:初始化对象 private MediaMetadataRetriever mediaMetadataRetriever new MediaMe…Android音视频开发 - MediaMetadataRetriever 相关 MediaMetadataRetriever 是android中用于从媒体文件中提取元数据新的类. 可以获取音频,视频和图像文件的各种信息,如时长,标题,封面等. 1:初始化对象 private MediaMetadataRetriever mediaMetadataRetriever new MediaMetadataRetriever(); mediaMetadataRetriever.setDataSource(sdcard/share.mp4);需要申请读写权限. 这里我使用的是本地路径, 需要注意的是如果路径文件不存在,会抛出 IllegalArgumentException,具体的源码如下: public void setDataSource(String path) throws IllegalArgumentException {if (path null) {throw new IllegalArgumentException();}try (FileInputStream is new FileInputStream(path)) {FileDescriptor fd is.getFD();setDataSource(fd, 0, 0x7ffffffffffffffL);} catch (FileNotFoundException fileEx) {throw new IllegalArgumentException();} catch (IOException ioEx) {throw new IllegalArgumentException();} }2: extractMetadata 根据keyCode返回keyCode关联的元数据. 系统的keyCode如下: /*** The metadata key to retrieve the numeric string describing the* order of the audio data source on its original recording.*/public static final int METADATA_KEY_CD_TRACK_NUMBER 0;/*** The metadata key to retrieve the information about the album title* of the data source.*/public static final int METADATA_KEY_ALBUM 1;/*** The metadata key to retrieve the information about the artist of* the data source.*/public static final int METADATA_KEY_ARTIST 2;/*** The metadata key to retrieve the information about the author of* the data source.*/public static final int METADATA_KEY_AUTHOR 3;/*** The metadata key to retrieve the information about the composer of* the data source.*/public static final int METADATA_KEY_COMPOSER 4;/*** The metadata key to retrieve the date when the data source was created* or modified.*/public static final int METADATA_KEY_DATE 5;/*** The metadata key to retrieve the content type or genre of the data* source.*/public static final int METADATA_KEY_GENRE 6;/*** The metadata key to retrieve the data source title.*/public static final int METADATA_KEY_TITLE 7;/*** The metadata key to retrieve the year when the data source was created* or modified.*/public static final int METADATA_KEY_YEAR 8;/*** The metadata key to retrieve the playback duration of the data source.*/public static final int METADATA_KEY_DURATION 9;/*** The metadata key to retrieve the number of tracks, such as audio, video,* text, in the data source, such as a mp4 or 3gpp file.*/public static final int METADATA_KEY_NUM_TRACKS 10;/*** The metadata key to retrieve the information of the writer (such as* lyricist) of the data source.*/public static final int METADATA_KEY_WRITER 11;/*** The metadata key to retrieve the mime type of the data source. Some* example mime types include: video/mp4, audio/mp4, audio/amr-wb,* etc.*/public static final int METADATA_KEY_MIMETYPE 12;/*** The metadata key to retrieve the information about the performers or* artist associated with the data source.*/public static final int METADATA_KEY_ALBUMARTIST 13;/*** The metadata key to retrieve the numberic string that describes which* part of a set the audio data source comes from.*/public static final int METADATA_KEY_DISC_NUMBER 14;/*** The metadata key to retrieve the music album compilation status.*/public static final int METADATA_KEY_COMPILATION 15;/*** If this key exists the media contains audio content.*/public static final int METADATA_KEY_HAS_AUDIO 16;/*** If this key exists the media contains video content.*/public static final int METADATA_KEY_HAS_VIDEO 17;/*** If the media contains video, this key retrieves its width.*/public static final int METADATA_KEY_VIDEO_WIDTH 18;/*** If the media contains video, this key retrieves its height.*/public static final int METADATA_KEY_VIDEO_HEIGHT 19;/*** This key retrieves the average bitrate (in bits/sec), if available.*/public static final int METADATA_KEY_BITRATE 20;/*** This key retrieves the language code of text tracks, if available.* If multiple text tracks present, the return value will look like:* eng:chi* hide*/public static final int METADATA_KEY_TIMED_TEXT_LANGUAGES 21;/*** If this key exists the media is drm-protected.* hide*/public static final int METADATA_KEY_IS_DRM 22;/*** This key retrieves the location information, if available.* The location should be specified according to ISO-6709 standard, under* a mp4/3gp box xyz. Location with longitude of -90 degrees and latitude* of 180 degrees will be retrieved as -90.0000180.0000, for instance.*/public static final int METADATA_KEY_LOCATION 23;/*** This key retrieves the video rotation angle in degrees, if available.* The video rotation angle may be 0, 90, 180, or 270 degrees.*/public static final int METADATA_KEY_VIDEO_ROTATION 24;/*** This key retrieves the original capture framerate, if its* available. The capture framerate will be a floating point* number.*/public static final int METADATA_KEY_CAPTURE_FRAMERATE 25;/*** If this key exists the media contains still image content.*/public static final int METADATA_KEY_HAS_IMAGE 26;/*** If the media contains still images, this key retrieves the number* of still images.*/public static final int METADATA_KEY_IMAGE_COUNT 27;/*** If the media contains still images, this key retrieves the image* index of the primary image.*/public static final int METADATA_KEY_IMAGE_PRIMARY 28;/*** If the media contains still images, this key retrieves the width* of the primary image.*/public static final int METADATA_KEY_IMAGE_WIDTH 29;/*** If the media contains still images, this key retrieves the height* of the primary image.*/public static final int METADATA_KEY_IMAGE_HEIGHT 30;/*** If the media contains still images, this key retrieves the rotation* angle (in degrees clockwise) of the primary image. The image rotation* angle must be one of 0, 90, 180, or 270 degrees.*/public static final int METADATA_KEY_IMAGE_ROTATION 31;/*** If the media contains video and this key exists, it retrieves the* total number of frames in the video sequence.*/public static final int METADATA_KEY_VIDEO_FRAME_COUNT 32;/*** hide*/public static final int METADATA_KEY_EXIF_OFFSET 33;/*** hide*/public static final int METADATA_KEY_EXIF_LENGTH 34;// Add more here...如获取视频时长: String METADATA_KEY_DURATION mediaMetadataRetriever.extractMetadata(MediaMetadataRetriever.METADATA_KEY_DURATION); Log.i(TAG, onCreate: METADATA_KEY_DURATIONMETADATA_KEY_DURATION);3: getFrameAtTime 该方法在任何时间位置找到一个有代表性的帧并将其作为位图返回. if (Build.VERSION.SDK_INT Build.VERSION_CODES.P) {Bitmap frameAtTime mediaMetadataRetriever.getFrameAtTime(); }如果需要获取指定时间,则可以调用 public Bitmap getFrameAtTime(long timeUs) {return getFrameAtTime(timeUs, OPTION_CLOSEST_SYNC);}4: getFrameAtIndex 用于从媒体文件中获取指定索引位置的帧图像. if (Build.VERSION.SDK_INT Build.VERSION_CODES.P) {Bitmap frameAtIndex mediaMetadataRetriever.getFrameAtIndex(0); }5: getImageAtIndex 基于0的图像索引,返回位图信息. Bitmap imageAtIndex mediaMetadataRetriever.getImageAtIndex(0);这里调用该方法时,会抛出IllegalStateException : java.lang.IllegalStateException: Does not contail still imagesat android.media.MediaMetadataRetriever.getImageAtIndexInternal(MediaMetadataRetriever.java:648)at android.media.MediaMetadataRetriever.getImageAtIndex(MediaMetadataRetriever.java:605)at com.test.media.MainActivity.lambda$onCreate$0$MainActivity(MainActivity.java:50)at com.test.media.-$$Lambda$MainActivity$fGcBDHveSBN77vUeMp6H1nheePE.onClick(Unknown Source:2)at android.view.View.performClick(View.java:7259)at com.google.android.material.button.MaterialButton.performClick(MaterialButton.java:967)at android.view.View.performClickInternal(View.java:7236)at android.view.View.access$3600(View.java:801)at android.view.View$PerformClick.run(View.java:27892)at android.os.Handler.handleCallback(Handler.java:894)at android.os.Handler.dispatchMessage(Handler.java:106)at android.os.Looper.loop(Looper.java:214)at android.app.ActivityThread.main(ActivityThread.java:7356)at java.lang.reflect.Method.invoke(Native Method)at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:491)at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:940)具体的错误信息的原因如下: private Bitmap getImageAtIndexInternal(int imageIndex, Nullable BitmapParams params) {if (!yes.equals(extractMetadata(MediaMetadataRetriever.METADATA_KEY_HAS_IMAGE))) {throw new IllegalStateException(Does not contail still images);}String imageCount extractMetadata(MediaMetadataRetriever.METADATA_KEY_IMAGE_COUNT);if (imageIndex Integer.parseInt(imageCount)) {throw new IllegalArgumentException(Invalid image index: imageCount);}return _getImageAtIndex(imageIndex, params); }可以看到系统源码中校验了extractMetadata(MediaMetadataRetriever.METADATA_KEY_HAS_IMAGE)的值,如果值不是yes,就会抛出Does not contail still images. 与getImageAtIndex类似的方法还有: getImageAtIndex(int, BitmapParams) getPrimaryImage(BitmapParams) getPrimaryImage()
http://www.w-s-a.com/news/453507/

相关文章:

  • 重庆网站建设帝维科技网站做定向的作用
  • 网站建设工作室wp主题模板做污事网站
  • 网站建设 深圳 凡科重庆家居网站制作公司
  • 自己也可以免费轻松创建一个网站企业收录网站有什么用
  • 帮别人做网站违法导航网站开发工具
  • seo网站外包公司字画价格网站建设方案
  • 网站国内空间价格销售技巧
  • 广安建设企业网站qq互联网站备案号
  • 京东网站建设的要求vs2010做的网站
  • wordpress 新闻杂志主题佛山企业网站排名优化
  • 选服务好的网站建设金华市开发区人才网
  • 广州建站商城南阳高质量建设大城市网站
  • 网站建设合同封面模板做代炼的网站
  • 外贸网站建站要多少钱南昌优化排名推广
  • 做公司网站的尺寸一般是多大企业管理网站
  • 苏州网站设计公司兴田德润i简介做签证宾馆订单用啥网站
  • 网站页面设计工具做网站租空间
  • 做智能网站系统百度提交入口
  • 网站建设代理商电话网站规划和建设方案
  • 双桥区网站制作seo 首页
  • 电子商务网站建设前期准备wordpress域名指向二级目录
  • 汕头建站网站模板淮北做网站电话
  • 手机做logo用什么网站服务器安全防护
  • 课程分销的网站怎么做北京企业网站建设方案
  • 吴兴区建设局网站湖北企业网站建设
  • 网页与网站的区别是什么2023年8月份新冠
  • 唐山网站建设外包公司安卓手机怎么搭建网页
  • 国内做网站最大的公司计量检测网站平台建设方案
  • 重庆沛宣网站建设网页制作初学者
  • php网站漂浮广告代码网络营销跟网站推广有啥区别