我一直在使用MVC构建生产级别的应用程序,并且最近添加了一个WebRTC GetUserMedia()模块,该模块允许用户捕获图片和视频。图片效果很好。如果您不移动摄像机,视频也不错,但是只要像平底锅一样移动摄像机,即使移动得很慢,视频质量也会很快下降。这对于捕获为质量检查设计的生产级素材是行不通的。
我已经尝试研究第三方工具,以便可以在其中本地拍摄照片和视频...但是我发现的所有内容似乎都是旧文章和插件,它们的最终输出据我所知最终变为GetUserMedia() 。我正在集思广益,例如:
使用Electron.js。但是,在我的简要研究中,似乎开发人员似乎也指向WebRTC吗?它们不是使用Electron访问诸如PhoneGap之类的设备功能的本地API吗?
我认为最好的第二个想法是跳过所有内容,仅使用设备的摄像头应用程序拍摄照片和视频。但是,为了使它按我需要的方式工作,我需要访问本地设备默认图像/视频文件夹的路径。
我不熟悉如何访问Android Tablet上的文件夹。是否有C#函数,如:
String GalleryPath = Environment.GetFolderPath(Environment.SpecialFolder.MyMedia);
即使有这样的方法在Android平板电脑上也可以使用?是否可以对通往本地移动设备的路径进行硬编码?如果是这样,该怎么办?
答案 0 :(得分:1)
下面是从Android获取文件夹的示例代码:
File SAVE_DIR = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS);
是否可以在移动设备上对路径进行硬编码?是。类似于C#,但不是:
“ C:\ Programs \ Etc”
它看起来像
“ / data / app / {appname} / {与应用相关的文件夹}”
答案 1 :(得分:0)
这是我尝试集成移动设备相机的第一个项目,因此这是一种学习体验。实际上,我并没有使用我所授予的示例,因为我为自己想要整体完成的工作提供了一种完全简单的方法。我只是将其发布给其他人,以避免犯同样的错误。我给了另一个答案,因为它使我知道这是可能的。还需要注意的是Environment.SpecialFolder有多个新的(至少对我来说是新的)枚举,现在可用于查找这些目录...我认为它们也可以在Android平台上工作,但我没有得到有机会进行测试。在这种情况下,我将使用CommonPictures
和CommonVideos
枚举来完成我想要的。
我使用的是:我的想法是,我不会使用WebRTC从浏览器中拍摄图片和视频,而是会使用设备的摄像头,然后从设备中处理应用程序中的图片和视频媒体目录...这就是为什么我一直在寻找一种方法来查找目录。一旦发现可以完成的工作,当我遇到改变整个方法的article时,我实际上已经开始寻找从C#打开设备照相机的方法。因为他从移动设备获得了移动屏幕截图,所以这篇文章使我大跌眼镜!最后,我可以用一行HTML来完成几乎所有的工作:
<input id="CapturedMedia" name="CapturedMedia" type="file" accept="audio/*,video/*,image/*" onchange="UploadMedia()">
在我的研究中,我多次遇到这个问题,事实上,我本人多次使用该元素将文件上传到我的ASP.Net应用程序中。但是我一直在台式计算机中使用此元素,在该元素中它会激活“打开文件对话框”。我不知道从移动设备可以自动打开设备相机并允许您从设备相机拍摄照片和视频。在研究如何从Web应用程序拍摄照片和视频时,您所读到的所有内容都是通过WebRTC MediaCapture直接从浏览器中完成的,因为这是个新手,而且很流行。但是,新功能并不一定总是最好的。在大多数情况下,我觉得只有在尝试从台式机拍摄图片和视频时才使用MediaCapture ...我不会将其用于移动设备。