项目中需要采集视频、照片、录音,并上传到服务器,这就需要读取这些文件流,照片和录音都很容易搞定。

视频有些麻烦,因为录制的视频被存到相册内,之后在FinishedPickingMedia里面不像照片可以通过下面代码直接得到

UIImage image = (UIImage)info.ObjectForKey(new NSString("UIImagePickerControllerOriginalImage"));

所以想到要不就直接去读取相册的文件,在模拟器内测试成功。

void FinishedPickingMedia(UIImagePickerController picker, NSDictionary info)
   2: {
//图片之前有方法读取了,这里主要是测试视频,下面是相册内的视频地址,很容易用代码得到的
//主要是在模拟器中选取视频,点击use后不能触发这个事件,不知道是不是模拟器的bug,所以固定下面视频地址,然后选择图片来执行下面代码
);
null)
   7:     {
delegate
   9:         {
new ALAssetsLibrary();
  11:             library.AssetForUrl(referenceURL, (asset) =>
  12:             {
null)
  14:                 {
string filePath1 = Path.Combine(destPath, asset.DefaultRepresentation.Filename);
long size = asset.DefaultRepresentation.Size;
byte[size];
  18:                     NSError nsError;
  19:                     IntPtr buffer = Marshal.AllocHGlobal(imgData.Length);
//拷贝ALAsset的一定字节到一个缓冲中
out nsError);
  22:                     吧缓冲写入到byte
  23:                     Marshal.Copy(buffer, imgData, 0, imgData.Length);
//可以写成文件,或发送字节流等动作
  25:                     File.WriteAllBytes(filePath1, imgData);
  26:                 }
  27:  
  28:             }, (error) =>
  29:             {
null)
  31:                 {
 + error.LocalizedDescription);
  33:                 }
  34:             });
  35:         });
  36:     }
true);
  38: }

相关文章:

  • 2021-05-19
  • 2021-11-09
  • 2021-05-25
  • 2021-07-02
  • 2022-12-23
  • 2021-12-05
  • 2021-09-13
猜你喜欢
  • 2021-06-03
  • 2022-12-23
  • 2021-09-09
  • 2022-01-05
  • 2022-12-23
  • 2021-10-05
  • 2022-12-23
相关资源
相似解决方案