97干视频,99国产精品懂色,亚洲精品99久久久久中文字幕,伊人五月丁香综合AⅤ,国产精品成人免费999

當(dāng)前位置: 移動互聯(lián)網(wǎng)學(xué)院 > Android開發(fā) > Android 數(shù)據(jù)讀取之音視頻讀取
Android 數(shù)據(jù)讀取之音視頻讀取 時間:2017-02-24     來源:移動互聯(lián)網(wǎng)學(xué)院

  Android讀取音視頻有兩種方法:

  遍歷sd卡根據(jù)文件后綴名讀取(太耗時優(yōu)先級低)

  利用內(nèi)容提供器來提取音視頻(優(yōu)先級高)

  1.第一步,建立mediaitem的bean基類

  package com.example.ztest.bean;

  import java.io.Serializable;

  public class MediaItem implements Serializable {

  private String name;

  private long size;

  private long duration;

  private String data;

  private String artist;

  public String getName() {

  return name;

  }

  public void setName(String name) {

  this.name = name;

  }

  public long getSize() {

  return size;

  }

  public void setSize(long size) {

  this.size = size;

  }

  public long getDuration() {

  return duration;

  }

  public void setDuration(long duration) {

  this.duration = duration;

  }

  public String getData() {

  return data;

  }

  public void setData(String data) {

  this.data = data;

  }

  public String getArtist() {

  return artist;

  }

  public void setArtist(String artist) {

  this.artist = artist;

  }

  @Override

  public String toString() {

  return "MediaItem [name=" + name + ", size=" + size + ", duration="

  + duration + ", data=" + data + ", artist=" + artist + "]";

  }

  }

  2.第二步就是寫個方法去讀取了(我只貼個方法了哦)

  private Handler handler = new Handler() {

  @Override

  public void handleMessage(Message msg) {

  super.handleMessage(msg);

  if (items != null && items.size() > 0) {

  //進行相關(guān)操作

  } else {

  Toast.makeText(TestAty.this, "沒有找到視頻", Toast.LENGTH_SHORT);

  }

  }

  };

  private void GetDataFormLocal() {

  items = new ArrayList();

  new Thread() {

  @Override

  public void run() {

  super.run();

  ContentResolver resolver = TestAty.this.getContentResolver();// 獲取內(nèi)容提供者

  Uri uri = MediaStore.Video.Media.EXTERNAL_CONTENT_URI;// 獲取外部存儲的uri

  String[] objs = { MediaStore.Video.Media.DISPLAY_NAME,// 視頻文件的名字

  MediaStore.Video.Media.SIZE,// 視頻文件的大小

  MediaStore.Video.Media.DURATION,// 視頻文件的總時長

  MediaStore.Video.Media.DATA,// 視頻文件的絕對地址

  MediaStore.Video.Media.ARTIST,// 音頻文件的作者

  };

  Cursor cursor = resolver.query(uri, objs, null, null, null);

  if (cursor != null) {

  while (cursor.moveToNext()) {

  MediaItem item = new MediaItem();

  String name = cursor.getString(0);

  long size = cursor.getLong(1);

  long duration = cursor.getLong(2);

  String data = cursor.getString(3);

  String artist = cursor.getString(4);

  item.setName(name);

  item.setSize(size);

  item.setDuration(duration);

  item.setData(data);

  item.setArtist(artist);

  items.add(item);

  }

  cursor.close();

  }

  handler.sendEmptyMessage(0);

  }

  }.start();

  }

  相信大家應(yīng)該都看得懂吧(有相關(guān)注釋),下面cursor讀取就是根據(jù)我們查詢的數(shù)組順序相對應(yīng)的,然后獲取完畢我么就利用一個handler發(fā)送一個消息,再對其進行處理。這樣就完成了視頻的讀取,音頻也一樣的,只要將相關(guān)的MediaStore.Video.Media改成MediaStore.Audio.Media就行了這樣獲取的就是音頻文件的相關(guān)屬性。