在Android中,我在哪里可以找到保存的图像?
对不起,快速提问: 我有一个视频流例程,在这里我接收数据包,将它们转换为字节[],然后转换为位图,然后在屏幕上显示它们:在Android中,我在哪里可以找到保存的图像?,android,ffmpeg,save,android-ffmpeg,Android,Ffmpeg,Save,Android Ffmpeg,对不起,快速提问: 我有一个视频流例程,在这里我接收数据包,将它们转换为字节[],然后转换为位图,然后在屏幕上显示它们: dsocket.receive(packetReceived); // receive packet byte[] buff = packetReceived.getData(); // convert packet to byte[] final Bitmap ReceivedImage = BitmapFactory.decodeByteArray(buff, 0, bu
dsocket.receive(packetReceived); // receive packet
byte[] buff = packetReceived.getData(); // convert packet to byte[]
final Bitmap ReceivedImage = BitmapFactory.decodeByteArray(buff, 0, buff.length); // convert byte[] to bitmap image
runOnUiThread(new Runnable()
{
@Override
public void run()
{
// this is executed on the main (UI) thread
imageView.setImageBitmap(ReceivedImage);
}
});
现在,我想实现一个录音功能。建议说我需要使用FFmpeg(我不知道如何使用),但首先,我需要准备一个有序图像的目录,然后将其转换为视频文件。执行此操作,我将在内部保存所有图像,并且我正在使用保存每个图像:
if(RecordVideo && !PauseRecording) {
saveToInternalStorage(ReceivedImage, ImageNumber);
ImageNumber++;
}
else
{
if(!RecordVideo)
ImageNumber = 0;
}
// ...
private void saveToInternalStorage(Bitmap bitmapImage, int counter){
ContextWrapper cw = new ContextWrapper(getApplicationContext());
// path to /data/data/yourapp/app_data/imageDir
File MyDirectory = cw.getDir("imageDir", Context.MODE_PRIVATE);
// Create imageDir
File MyPath = new File(MyDirectory,"Image" + counter + ".jpg");
FileOutputStream fos = null;
try {
fos = new FileOutputStream(MyPath);
// Use the compress method on the BitMap object to write image to the OutputStream
bitmapImage.compress(Bitmap.CompressFormat.PNG, 100, fos);
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
fos.close();
} catch (IOException e) {
e.printStackTrace();
}
}
//return MyDirectory.getAbsolutePath();
}
但我似乎无法在我的设备上找到目录(以实际查看我是否成功创建了目录)
///data/data/yourapp/app\u data/imageDir
的路径在哪里?ContextWrapper
的getDir
方法将自动创建imageDir
目录,如果它根据当前路径尚不存在。此外,除非您具有root访问权限,否则无法访问应用程序代码之外的/data
目录中的任何内容。如果要查看保存在此目录中的图像,可以在命令提示符下运行adb
工具,将图像移动到可公开访问的目录中:
adb shell run-as com.your.packagename cp -r /data/data/com.your.packagename/app_data/imageDir /sdcard/imageDir
adb pull /sdcard/myDir C:\Users\Desktop
请注意,run as
命令仅在应用程序可调试时才起作用
您可以将/sdcard/imageDir
替换为您有权在设备上访问的任何目录。如果您想随后将文件从设备上移动到您的机器上,您可以使用adb pull
从公用目录中提取文件:
adb shell run-as com.your.packagename cp -r /data/data/com.your.packagename/app_data/imageDir /sdcard/imageDir
adb pull /sdcard/myDir C:\Users\Desktop
同样,用适当的源目录和目标目录替换
/sdcard/myDir
和C:\Users\Desktop
。您好,谢谢,对不起,我没有这些命令,我如何在代码中执行这些命令?看起来像是cmd的东西不是吗?此外,在c#桌面应用程序中,我们选择目录c://桌面
等。我无法在Android中执行此操作?您可以使用上述命令将私人文件复制到SD卡,然后使用adb pull并指定目录将文件拉到您的计算机。我会更新我的答案来举个例子。太棒了,请提前感谢。我想要一个类似internalstorage\DCIM\100MEDIA\MyDirectoryOfImages
的路径(或者想象一下)。也许这不是安卓的工作方式。。我还不知道。学习:)