HarmonyOS 拍照picker控件好像传saveUrl好像无法正常存储?

let pathUrl = ''
try {
  let pickerProfile: picker.PickerProfile = {
    cameraPosition: camera.CameraPosition.CAMERA_POSITION_BACK,
    saveUri: "/data/storage/el2/base/haps/phone/cache/compressUploadImg/1722246248971pictures.jpg"
  };
  let pickerResult: picker.PickerResult = await picker.pick(getContext(),
    [picker.PickerMediaType.PHOTO], pickerProfile);
  if (pickerResult.resultCode == 0) {
    pathUrl = pickerResult.resultUri;
  }
} catch (e) {
  console.error($r("app.string.take_photo_err") + JSON.stringify(e));
}
return pathUrl;
阅读 476
1 个回答

参考下面示例,了解路径参数的格式:

import {cameraPicker as picker,camera} from '@kit.CameraKit'
import common from '@kit.AbilityKit';
import { BusinessError } from '@kit.BasicServicesKit';
import {fileIo as fs ,fileUri} from '@kit.CoreFileKit'
let mContext = getContext(this) as common.Context;
class CameraPosition {
  cameraPosition : camera.CameraPosition
  saveUri :string
  constructor(cameraPosition : camera.CameraPosition,saveUri:string) {
    this.cameraPosition = cameraPosition
    this.saveUri = saveUri
  }
}
let pathDir = getContext().filesDir;
let filePath = pathDir + `/${new Date().getTime()}.jpg`
fs.createRandomAccessFileSync(filePath, fs.OpenMode.CREATE);
let uri = fileuri.getUriFromPath(filePath);
async function demo() {
  try {
    let pickerProfile = new CameraPosition(camera.CameraPosition.CAMERA_POSITION_BACK,uri)
    //前置摄像机传CAMERA_POSITION_FRONT,后置摄像机传CAMERA_POSITION_BACK,saveuri传想存到对应沙箱的uri
    let pickerResult: picker.PickerResult = await picker.pick(mContext, [picker.PickerMediaType.PHOTO, picker.PickerMediaType.VIDEO], pickerProfile);
    console.log("the pick pickerResult is:" + JSON.stringify(pickerResult));
  } catch (error) {
    let err = error as BusinessError;
    console.error(`the pick call failed. error code: ${err.code}`);
  }
}
@Entry
@Component struct Photopage{
  build(){
    Column(){
      Button('拉起后置摄像头').onClick(()=>{ demo() })
    }
  }
}
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进