序文
アンドロイドはMediaMetadataRetrieverを頼る主に達成した映像情報に買収されました
最高のビデオプレビューを取得
最高いわゆるMediaMetadataRetriever独自の計算であります
/ ** *動画のサムネイルを取得する * @param vedioFile * @return * / パブリック 静的なビットマップgetVedioThumbnail(vedioFileファイル){ IF(!{VedioFile.exists()) ル( "ビデオファイルは存在しません" ); 戻り ヌル; } レトリーバーMediaMetadataRetrieverである。 = 新しい新しいMediaMetadataRetriever)が(ある。 retriever.setDataSource(vedioFile.getAbsolutePath()); ビットマップビットマップ = retriever.getFrameAtTime(); 戻りビットマップを; }
あなたのビデオファイルには、資産のファイルである場合
ADF = context.getAssets AssetFileDescriptor()openFd(vedioFile.getAbsolutePath());. // ファイルには、ビデオ・アプリケーション資産のディレクトリである場合 retriever.setDataSource(adf.getFileDescriptor());
図に指定されたビデオプレビュー時間位置を取得します。
/ ** *動画のサムネイルを取得する * @param vedioFile * @return * / パブリック 静的なビットマップgetVedioThumbnail(vedioFileファイル){ IF(!{VedioFile.exists()) ル( "ビデオファイルは存在しません" ); 戻り ヌル; } レトリーバーMediaMetadataRetrieverである。 = 新しい新しいMediaMetadataRetriever)が(ある。 retriever.setDataSource(vedioFile.getAbsolutePath()); ビットマップビットマップ = retriever.getFrameAtTime(1000); // パラメータミリ秒、戻りフレームは、図の時間に近接してい 戻りビットマップ。 }
長GETビデオの再生
/ ** *全長ビデオ再生を返す * @param vedioFile * @return * / パブリック 静的ロングgetVedioTotalTime(vedioFileファイル){ IF(!{VedioFile.exists()) ル( "ビデオファイルは存在しません" ); 戻り ヌル; } 。MediaMetadataRetrieverはレトリーバーある = 新しい新規。)MediaMetadataRetrieverは(ある retriever.setDataSource(vedioFile.getAbsolutePath()); 文字列TimeString = retriever.extractMetadata(MediaMetadataRetriever.METADATA_KEY_DURATION); ロング・タイム= Long.valueOf(timeString)。 戻る時間を。 }
追加情報は表を参照してください。
/ ** * メタデータキー、取得するための説明数値文字列 * 順次記録元のオーディオデータのソースを。 * / 公共の 静的 最終 int型の METADATA_KEY_CD_TRACK_NUMBER = 0 ; / ** メタデータキーはアルバムタイトル、データソースに関する情報を取得するために使用されます。 * / 公共の 静的 最終 int型 METADATA_KEY_ALBUM = 1。; / ** メタデータキー、データソースのアーティストに関する情報を取得します。 * / 公共の 静的 最終 int型 METADATA_KEY_ARTIST = 2 ; / ** 情報源に関するデータを取得するためのメタデータキー、。 * / 公共の 静的 最終 int型= 3 METADATA_KEY_AUTHOR。; / ** メタデータキーは、作曲・データ・ソースに関する情報を取得します。 * / 公共の 静的 最終 int型 METADATA_KEY_COMPOSER = 4。; / ** メタデータのキーデータソースを作成したり、日付を変更を取得します。 * / 公共の 静的 最終 int型 METADATA_KEY_DATE = 5。; / ** メタデータキー、コンテンツタイプ、またはデータを取得するためのリソースのタイプ。 * / パブリック 静的 最終 int型 METADATA_KEY_GENRE = 6 ; / ** データソースのメタデータキーヘッダを検索するため。 * / 公共の 静的 最終 int型 METADATA_KEY_TITLE。7 =; / * 年作成または変更するデータソースを取得するためのメタデータのキー、。 * / 公共の 静的 最終 int型 METADATA_KEY_YEAR = 8。; / ** メタデータキー、データ・ソースを取得するための時間を果たしています。 * / 公共の 静的 最終 int型 METADATA_KEY_DURATION = 9。; / ** など、このようなmp4ファイルや3GPPなどのオーディオ、ビデオ、テキスト、データソース、などのメタデータのキーのトラック番号を、取得します。 * / パブリック 静的 最終 INT METADATA_KEY_NUM_TRACKS = 10 ; / ** 情報を取得するためのデータソースのメタデータのキー(例えば、単語)のために。 * / 公共の 静的 最終 int型の METADATA_KEY_WRITER。11 =; / ** * データソースのメタデータキーの検索MIMEタイプ。いくつかの 「ビデオ:MIMEタイプの記載の例 / MP4」、「オーディオ/ MP4」、「オーディオ/ AMR- WB」など * / パブリック 静的 最終 int型の METADATA_KEY_MIMETYPE = 12である; / ** 演奏についての情報を取得するためのメタデータキー上の情報 のデータソースに関連付けられているアーティスト。 * / 公共の 静的 最終 int型 METADATA_KEY_ALBUMARTIST = 13であり; / ** これはデジタル文字列記述子の取得のために、メタデータのキー ソースからのオーディオデータの一部を。 * / 公共の 静的 最終 int型 METADATA_KEY_DISC_NUMBER = 14 ; / ** メタデータキーの音楽アルバムの編集状態を取得するため。 * / 公共の 静的 最終 int型の METADATA_KEY_COMPILATION = 15 ; / ** * このキーが存在する場合、オーディオコンテンツを含む培地。 * / 公共の 静的 最終 int型 METADATA_KEY_HAS_AUDIO = 16 ; / ** このキーが存在する場合には、映像コンテンツを含む培地。 * / 公共の 静的 最終 int型の METADATA_KEY_HAS_VIDEO = 17。; / ** メディアはビデオが含まれている場合、このキーは、その幅を取得します。 * / 公共の 静的 最終 int型 METADATA_KEY_VIDEO_WIDTH = 18である; / ** メディアは、ビデオを含めた場合は、このキーは、その高さを取得します。 * / パブリック 静的 最終 INT METADATA_KEY_VIDEO_HEIGHT = 19 ; / ** *このキーは、(ビット/平均ビットレートを取得し(可能な場合)秒)。 * / 公共の 静的 最終 int型 METADATA_KEY_BITRATE = 20 ; / ** テキストトラックの言語コード(もしあれば)を取得し、このキーを押します。次のようにトラック本テキスト複数の場合、戻り値が示される: * / パブリック 静的 最終 int型 METADATA_KEY_TIMED_TEXT_LANGUAGES = 21である; / ** このキーが存在する場合、メディアが保護されています。 * / 公共の 静的 最終 int型の METADATA_KEY_IS_DRM = 22であります; / * (もしあれば)このキーは、位置情報を取得します。 ISOの位置はならない -6709標準の「@xyz」MP4 / 3GPボックスを割り当てます。経度- 90度と緯度は 、例えば、180度として取得される「 -90.0000 + 180.0000 。」 * / 公共の 静的 最終 int型の METADATA_KEY_LOCATION = 23であり; / ** これは、単位(使用可能な場合)の映像の回転角度を取得するための鍵です。 ビデオの回転角度が0度、90度、180度または270度であってもよいです。 * / 公共の 静的 最終 int型 METADATA_KEY_VIDEO_ROTATION = 24 ; / ** * 利用できる(それがある場合)、元のキャプチャフレームレートを取得するには、このキーを押します。キャプチャフレームレートは浮動小数点数になります。 * / 公共の 静的 最終 int型= 25 METADATA_KEY_CAPTURE_FRAMERATE ; / ** キーが存在する場合、静止画像を含むメディアコンテンツ。 * / 公共の 静的 最終 int型の METADATA_KEY_HAS_IMAGE = 26である; / ** * メディアは、静止画像が含まれている場合、このキーは、静止画の数を取得します。 * / 公共の 静的 最終 int型 METADATA_KEY_IMAGE_COUNT = 27 ; / ** * メディアは、静止画像が含まれている場合は、キーインデックスは、メイン画像を取得します。 * / 公共の 静的 最終 int型の METADATA_KEY_IMAGE_PRIMARY = 28 ; / ** * メディアは、静止画像が含まれている場合は、メイン画像のキーの幅を取得します。 * / パブリック 静的 最終 int型の METADATA_KEY_IMAGE_WIDTH = 29 ; / ** * メディアは、静止画像、検索されたメインキーのこの画像の高さが含まれている場合。 * / 公共の 静的 最終 int型 METADATA_KEY_IMAGE_HEIGHT = 30 ; / ** * メディアは、静止画像、メイン画像(右回り)を取得するためのキーの回転角度が含まれている場合。画像は、回転角度0度、90度、180度または270度のいずれかでなければなりません。 * / パブリック 静的 最終 int型 METADATA_KEY_IMAGE_ROTATION = 31である; / ** * メディアがビデオを含み、このキーが存在する場合、ビデオシーケンス内のフレームの総数が検索されます。 * / 公共の 静的 最終 int型 METADATA_KEY_VIDEO_FRAME_COUNT = 32。