URL示例:
https://12.12.12.12:1223/mms/abc123.mp4 //视频
https://12.12.12.12:1223/mms/abc123.amr //音频
private Bitmap urlBitmap(String urlString) {
HttpURLConnection urlConnection = null;
BufferedInputStream in = null;
Bitmap bitmap = null;
try {
final URL url = new URL(urlString);
urlConnection = (HttpURLConnection) url.openConnection();
in = new BufferedInputStream(urlConnection.getInputStream(), 8 * 1024);
bitmap = BitmapFactory.decodeStream(in);
ByteArrayOutputStream bos = new ByteArrayOutputStream();
bitmap.compress(Bitmap.CompressFormat.PNG, 100, bos);
byte[] bytes = bos.toByteArray();
bitmap = BitmapFactory.decodeByteArray(bytes, 0, bytes.length);
} catch (final IOException e) {
e.printStackTrace();
} finally {
if (urlConnection != null) {
urlConnection.disconnect();
}
try {
if (in != null) {
in.close();
}
} catch (final IOException e) {
e.printStackTrace();
}
}
return bitmap;
}
可以更改接收类型,就像下载文件一样,下载就行,然后存入本地,最后调用本地文件发送,本质上图片和视频都是资源都可以下载的。
望采纳哦,深夜回复不易。
不管你是视频还是音频,只需要把它当成附件添加即可。
可参考这篇文章(它就是把 uri 添加成附件的):https://blog.csdn.net/weixin_28867883/article/details/117506814
音视频文件,同样可以像上面图片代码一样,直接转换为相应的url附件的,只不过大小有限制
可以使用Android中的MediaPlayer类来转换URL到视频和音频。
例如:
MediaPlayer mediaPlayer = new MediaPlayer();
mediaPlayer.setDataSource(url);
mediaPlayer.prepare();
mediaPlayer.start();
谢谢各位的指点,尝试了很多种方式,没找到将url转成视频/音频的,但可以将他改成byte[]数组
解决:
private byte[] mmsVideoOrAudio(String urlString) {
BufferedOutputStream bos = null;
InputStream is = null;
ByteArrayOutputStream output = new ByteArrayOutputStream();
try {
is = new URL(urlString).openStream();
byte[] buffer = new byte[1024 * 4];
int n = 0;
while (-1 != (n = is.read(buffer))) {
output.write(buffer, 0, n);
}
} catch (IOException e) {
e.printStackTrace();
} finally {
if (is != null) {
try {
is.close();
} catch (IOException e) {
e.printStackTrace();
}
}
if (bos != null) {
try {
bos.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
byte[] bytes = output.toByteArray();
return bytes;
}