- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我阅读了 Android SDK,发现 MediaRecorder 类可以从相机、音频或其他来源获取输入并进行压缩。通过 setOutputFile 方法,您可以指定要存储数据的位置(文件或 URI),但是如果我想将该数据存储在内存缓冲区中并通过连接发送它呢?还是在发送之前处理它?我的意思是有没有办法不创建文件而只使用内存缓冲区?
最佳答案
你当然可以稍后读取文件,在处理方式上做任何你想做的事情。假设您持有生成的音频文件的 Uri,下面是将其读入字节数组然后删除文件的代码 fragment 。
String audioUri = u.getPath();
InputStream in = new BufferedInputStream(this.getContentResolver().openInputStream(u));
byte[] b = new byte[BUFSIZE];
BufferedOutputStream out = new BufferedOutputStream(new FileOutputStream(new File(mFileName/*mFilePath*/)));
int byteCnt = 0;
while (0 <= (byteCnt = in.read(b, 0, BUFSIZE)))
out.write(b, 0, byteCnt);
out.flush();
out.close();
// try to delete media file
try {
// Delete media file pointed to by Uri
new File(getRealPathFromURI(u)).delete();
} catch (Exception ex) {}
public String getRealPathFromURI(Uri contentUri) {
String[] proj = { MediaStore.Images.Media.DATA };
Cursor cursor = managedQuery(contentUri, proj, null, null, null);
int column_index = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA);
cursor.moveToFirst();
return cursor.getString(column_index);
}
关于Android MediaRecorder 和 setOutputFile,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3854163/
我阅读了 Android SDK,发现 MediaRecorder 类可以从相机、音频或其他来源获取输入并进行压缩。通过 setOutputFile 方法,您可以指定要存储数据的位置(文件或 URI)
我正在开发一个 Android 应用程序,它应该能够将视频流式传输到我网络上的本地服务器,而无需将其存储在 SD 卡上。 为此,我在 C# 中创建了一个简单的套接字应用程序,用于监听特定的 IP:PO
我正在我的应用程序中录制音频,但我正在努力处理 MediaRecorder 类 import android.media.MediaRecorder; 问题是代码编译但似乎无法在 API 级别 < 2
本文整理了Java中com.android.build.gradle.tasks.ZipAlign.setOutputFile()方法的一些代码示例,展示了ZipAlign.setOutputFile
我有从后置摄像头录制视频的服务: this.mMediaRecorder = new MediaRecorder(); this.mMediaRecorder.setCamera(mCamera);
我在我的 Android 应用程序中使用 MediaRecorder。我引用了 MediaRecorder 类的 public void setOutputFile (String path) 的在线
我在一个 Android 应用程序项目中使用以下简化配置。 android { compileSdkVersion 20 buildToolsVersion "20.0.0"
我是一名优秀的程序员,十分优秀!