Smobiler上海石磨_.NET移动开发平台

标题: 如何支持离线拍照和录音并后期在wifi环境下实现上传? [打印本页]

作者: Lincy.Lin    时间: 2016-5-30 16:12
标题: 如何支持离线拍照和录音并后期在wifi环境下实现上传?
前言:我们平时在地铁上、火车上、或者偏远地区等网络不稳定的环境下会出现上传图像和录音文件失败;或者网络条件受限,只能使用数据流量的情况下,为避免使用太多数据流量,我们可以使用离线上传,让用户拍照和录音后,只上传文件名,然后在wifi的条件下再上传拍照图像数据和录音文件。

一.获取拍照和录音的离线文件
获取拍照和录音的离线上传文件有两种方式
方式一:
1.通过Camera组件调用离线拍照
  a.从工具栏拖一个Camera到窗体中,因为Camera是组件栏控件,所以会显示在窗体下面的组件栏中
  [attach]654[/attach]
  b.离线拍照上传有两种模式Camera和CameraAndAlbum,表示直接调用相机模式和调用相机相册列表模式,如下
  [attach]648[/attach]
  c.调用Camera的方法GetPhotoOffline(),在这个方法中可传入一个指定的文件名,这样在客户端完成拍照后,返回的文件名即为当前方法中指定的文件名。
  d.选择窗体中的Camera组件的OfflineImageCaptured事件,生成的OfflineImageCaptured事件的参数为(object sender, APIResourceData e),APIResourceData中包含了ResourceID
2.通过VoiceRecorder组件调用离线录音
  a.从工具栏中拖一个VoiceRecorder到窗体中,因为VoiceRecorder是组件栏控件,所以会显示在窗体下面的组件栏中
  [attach]653[/attach]
  b.调用VoiceRecorder的方法GetRecorderAudioOffline(),在这个方法中可传入一个指定的文件名,这样在客户端完成录音后,返回的文件名即为当前方法中指定的文件名
  c.选择窗体中的VoiceRecorder组件的OfflineRecorderdAudio事件,生成OfflineRecorderdAudio事件的参数为(object sender, APIResourceData e),APIResourceData中包含了ResourceID


方式二:
1.使用照片离线上传按钮控件(OfflineCameraButton)
  a.从工具栏中拖一个OfflineCameraButton到窗体中,双击生成事件OfflineImageCaptured。
  [attach]651[/attach]
2.声音离线上传按钮控件(OfflineVoiceRecorderButton)
  a.从工具栏中拖一个OfflineVoiceRecorderButton到窗体中,双击生成事件OfflineRecordedAudio。
  [attach]652[/attach]
注:OfflineCameraButton离线拍照上传按钮和OfflineVoiceRecorderButton离线录音上传按钮传入指定文件名需在click事件命名


二.客户端和服务器的离线文件位置
1.客户端的离线文件存在设置界面-离线文件中
[attach]655[/attach]    [attach]656[/attach]
2.服务器离线相册上传默认存在项目的Image文件夹中,离线录音上传默认存在项目Audio文件夹中。












作者: Csharp    时间: 2016-8-20 09:35
离线文件都需要手动上传,还是他会在有wifi时自动上传。
作者: Csharp    时间: 2016-8-20 09:39
再问一下,离线控件得到的,ResourceID比如是图片的。在未上传前,把ResourceID付值给图片控件,本机(手机)能不能显示(离线)图片?
作者: Lincy.Lin    时间: 2016-8-22 10:39
Csharp 发表于 2016-8-20 09:39
再问一下,离线控件得到的,ResourceID比如是图片的。在未上传前,把ResourceID付值给图片控件,本机(手机 ...

1.目前离线文件不支持自动上传, 需要手动上传
2.赋值离线控件的ResourceID给图片控件的场景,您这样考虑的原因是什么呢?
作者: Csharp    时间: 2016-8-22 16:40
只是问一问离线还未上传时,在离线的哪台手机上,资源是否可用。




欢迎光临 Smobiler上海石磨_.NET移动开发平台 (https://www.smobiler.com/) Powered by Discuz! X3.2