84 lines
2.3 KiB
Java
84 lines
2.3 KiB
Java
package com.arialyy.frame.util;
|
|
|
|
import android.content.Context;
|
|
import android.graphics.Bitmap;
|
|
import android.graphics.BitmapFactory;
|
|
import android.media.MediaMetadataRetriever;
|
|
import android.media.MediaPlayer;
|
|
import android.net.Uri;
|
|
import java.io.IOException;
|
|
import java.util.Formatter;
|
|
import java.util.Locale;
|
|
|
|
/**
|
|
* Created by Aria.Lao on 2018/1/4.
|
|
* 多媒体工具
|
|
*/
|
|
public class MediaUtil {
|
|
private MediaUtil() {
|
|
throw new AssertionError();
|
|
}
|
|
|
|
/**
|
|
* 获取音频、视频播放长度
|
|
*/
|
|
public static long getDuration(String path) {
|
|
MediaPlayer mediaPlayer = new MediaPlayer();
|
|
try {
|
|
mediaPlayer.setDataSource(path);
|
|
} catch (IOException e) {
|
|
e.printStackTrace();
|
|
return -1;
|
|
}
|
|
int duration = mediaPlayer.getDuration();
|
|
mediaPlayer.release();
|
|
return duration;
|
|
}
|
|
|
|
/**
|
|
* 格式化视频时间
|
|
*/
|
|
public static String convertViewTime(long timeMs) {
|
|
int totalSeconds = (int) (timeMs / 1000);
|
|
|
|
int seconds = totalSeconds % 60;
|
|
int minutes = (totalSeconds / 60) % 60;
|
|
int hours = totalSeconds / 3600;
|
|
StringBuilder sFormatBuilder = new StringBuilder();
|
|
Formatter sFormatter = new Formatter(sFormatBuilder, Locale.getDefault());
|
|
sFormatBuilder.setLength(0);
|
|
if (hours > 0) {
|
|
return sFormatter.format("%02d:%02d:%02d", hours, minutes, seconds).toString();
|
|
} else {
|
|
return sFormatter.format("%02d:%02d", minutes, seconds).toString();
|
|
}
|
|
}
|
|
|
|
/**
|
|
* 获取音频封面
|
|
*/
|
|
public static Bitmap getArtwork(Context context, String url) {
|
|
Uri selectedAudio = Uri.parse(url);
|
|
MediaMetadataRetriever myRetriever = new MediaMetadataRetriever();
|
|
myRetriever.setDataSource(context, selectedAudio); // the URI of audio file
|
|
byte[] artwork;
|
|
artwork = myRetriever.getEmbeddedPicture();
|
|
if (artwork != null) {
|
|
return BitmapFactory.decodeByteArray(artwork, 0, artwork.length);
|
|
}
|
|
return null;
|
|
}
|
|
|
|
public static byte[] getArtworkAsByte(Context context, String url) {
|
|
Uri selectedAudio = Uri.parse(url);
|
|
MediaMetadataRetriever myRetriever = new MediaMetadataRetriever();
|
|
myRetriever.setDataSource(context, selectedAudio); // the URI of audio file
|
|
byte[] artwork;
|
|
artwork = myRetriever.getEmbeddedPicture();
|
|
if (artwork != null) {
|
|
return artwork;
|
|
}
|
|
return null;
|
|
}
|
|
}
|