中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當(dāng)前位置: 首頁 > news >正文

寶雞做網(wǎng)站公司谷歌瀏覽器下載官網(wǎng)

寶雞做網(wǎng)站公司,谷歌瀏覽器下載官網(wǎng),xampp和wordpress,美容培訓(xùn)東莞網(wǎng)站建設(shè)【HarmonyOS】 鴻蒙保存圖片或視頻到相冊 前言 鴻蒙中保存圖片或者視頻,或者其他媒體文件到設(shè)備的媒體庫,可以是相冊,也可以是文件管理等。共有兩種方式: 需要應(yīng)用申請受限權(quán)限,獲取文件讀寫的權(quán)限(調(diào)用…

【HarmonyOS】 鴻蒙保存圖片或視頻到相冊

前言

鴻蒙中保存圖片或者視頻,或者其他媒體文件到設(shè)備的媒體庫,可以是相冊,也可以是文件管理等。共有兩種方式:

  1. 需要應(yīng)用申請受限權(quán)限,獲取文件讀寫的權(quán)限(調(diào)用需要ohos.permission.READ_IMAGEVIDEO和ohos.permission.WRITE_IMAGEVIDEO的權(quán)限),這樣就可以將媒體資源(圖片or視頻or等等)保存到媒體庫。
  2. 通過安全控件,用戶觸發(fā)后表示同意,可以臨時授權(quán)給應(yīng)用就行保存處理。

關(guān)于第二種安全控件,又分為saveButton保存按鈕showAssetsCreationDialog授權(quán)彈框兩種形式。前者的按鈕樣式不能自定義,所以后者以彈框的形式,讓用戶操作,觸發(fā)入口的樣式,應(yīng)用就可以自定義了。后者算是前者的一種替代補(bǔ)充。

一、保存圖片和視頻授權(quán)示例

需要申請"ohos.permission.READ_IMAGEVIDEO"和"ohos.permission.WRITE_IMAGEVIDEO"權(quán)限。該權(quán)限是管制權(quán)限,需要你的應(yīng)用去通過場景申請【申請使用受限權(quán)限】

配置權(quán)限READ_IMAGEVIDEO,WRITE_IMAGEVIDEO

"requestPermissions": [{"name": "ohos.permission.READ_IMAGEVIDEO","usedScene": {"abilities": ["EntryAbility"],"when": "inuse"},"reason": "$string:CAMERA"},{"name": "ohos.permission.WRITE_IMAGEVIDEO","usedScene": {"abilities": ["EntryAbility"],"when": "inuse"},"reason": "$string:CAMERA"}
]

向用戶申請權(quán)限

//  創(chuàng)建申請權(quán)限明細(xì)async reqPermissionsFromUser(): Promise<number[]> {let context = getContext() as common.UIAbilityContext;let atManager = abilityAccessCtrl.createAtManager();let grantStatus = await atManager.requestPermissionsFromUser(context, ['ohos.permission.READ_IMAGEVIDEO','ohos.permission.WRITE_IMAGEVIDEO']);return grantStatus.authResults;}// 用戶申請權(quán)限async requestPermission() {let grantStatus = await this.reqPermissionsFromUser();for (let i = 0; i < grantStatus.length; i++) {if (grantStatus[i] === 0) {// 用戶授權(quán),可以繼續(xù)訪問目標(biāo)操作}}}

保存圖片到媒體庫

public async savePicture(buffer: ArrayBuffer): Promise<void> {let helper : photoAccessHelper.PhotoAccessHelper = photoAccessHelper.getPhotoAccessHelper(getContext(this) as common.UIAbilityContext);let options: photoAccessHelper.CreateOptions = {title: Date.now().toString()};let photoUri: string = await helper.createAsset(photoAccessHelper.PhotoType.IMAGE, 'jpg', options);console.info(photoUri)// createAsset的調(diào)用需要ohos.permission.READ_IMAGEVIDEO和ohos.permission.WRITE_IMAGEVIDEO的權(quán)限let file: fs.File = fs.openSync(photoUri, fs.OpenMode.READ_WRITE | fs.OpenMode.CREATE);await fs.write(file.fd, buffer);fs.closeSync(file);
}

二、saveButton示例

import { photoAccessHelper } from '@kit.MediaLibraryKit';

struct saveButtonExample {saveButtonOptions: SaveButtonOptions = {icon: SaveIconStyle.FULL_FILLED,text: SaveDescription.SAVE_IMAGE,buttonType: ButtonType.Capsule} // 設(shè)置安全控件按鈕屬性build() {Row() {Column() {SaveButton(this.saveButtonOptions) // 創(chuàng)建安全控件按鈕.onClick(async (event, result: SaveButtonOnClickResult) => {if (result == SaveButtonOnClickResult.SUCCESS) {try {let context = getContext();let phAccessHelper = photoAccessHelper.getPhotoAccessHelper(context);// 需要確保fileUri對應(yīng)的資源存在let fileUri = 'file://com.example.temptest/data/storage/el2/base/haps/entry/files/test.jpg';let assetChangeRequest: photoAccessHelper.MediaAssetChangeRequest = photoAccessHelper.MediaAssetChangeRequest.createImageAssetRequest(context, fileUri);await phAccessHelper.applyChanges(assetChangeRequest);console.info('createAsset successfully, uri: ' + assetChangeRequest.getAsset().uri);} catch (err) {console.error(`create asset failed with error: ${err.code}, ${err.message}`);}} else {console.error('SaveButtonOnClickResult create asset failed');}})}.width('100%')}.height('100%')}
}

三、 showAssetsCreationDialog示例

import { photoAccessHelper } from '@kit.MediaLibraryKit';
import { fileIo } from '@kit.CoreFileKit';let context = getContext(this);
let phAccessHelper = photoAccessHelper.getPhotoAccessHelper(context);async function showAssetsCreationDialogExample() {try {// 指定待保存到媒體庫的位于應(yīng)用沙箱的圖片urilet srcFileUri = 'file://com.example.temptest/data/storage/el2/base/haps/entry/files/test.jpg';let srcFileUris: Array<string> = [srcFileUri];// 指定待保存照片的創(chuàng)建選項,包括文件后綴和照片類型,標(biāo)題和照片子類型可選let photoCreationConfigs: Array<photoAccessHelper.PhotoCreationConfig> = [{title: 'test', // 可選fileNameExtension: 'jpg',photoType: photoAccessHelper.PhotoType.IMAGE,subtype: photoAccessHelper.PhotoSubtype.DEFAULT, // 可選}];// 基于彈窗授權(quán)的方式獲取媒體庫的目標(biāo)urilet desFileUris: Array<string> = await phAccessHelper.showAssetsCreationDialog(srcFileUris, photoCreationConfigs);// 將來源于應(yīng)用沙箱的照片內(nèi)容寫入媒體庫的目標(biāo)urilet desFile: fileIo.File = await fileIo.open(desFileUris[0], fileIo.OpenMode.WRITE_ONLY);let srcFile: fileIo.File = await fileIo.open(srcFileUri, fileIo.OpenMode.READ_ONLY);await fileIo.copyFile(srcFile.fd, desFile.fd);fileIo.closeSync(srcFile);fileIo.closeSync(desFile);console.info('create asset by dialog successfully');} catch (err) {console.error(`failed to create asset by dialog successfully errCode is: ${err.code}, ${err.message}`);}
}

注意:
1. 使用createAsset需要指定是視頻還是圖片, fileio.open并不校驗文件內(nèi)容
2. 使用createImageAssetRequest接口,如果要保存視頻需要用createVideoeAssetRequest
或者還可以直接使用createAssetRequest和addResource的方式

http://www.risenshineclean.com/news/8827.html

相關(guān)文章:

  • 公司網(wǎng)站建設(shè)怎么選擇主機(jī)大小百度推廣個人怎么開戶
  • 太原網(wǎng)站建設(shè)制作報價南寧seo營銷推廣
  • 網(wǎng)站建設(shè)維護(hù)及使用管理辦法自動友鏈網(wǎng)
  • 企業(yè)網(wǎng)站運(yùn)營推廣難做嗎天津seo數(shù)據(jù)監(jiān)控
  • erp系統(tǒng)哪家做得好武漢整站seo數(shù)據(jù)上云
  • 如何做網(wǎng)站呢上海網(wǎng)絡(luò)推廣平臺
  • 蘇州專業(yè)網(wǎng)站建設(shè)定制正規(guī)考證培訓(xùn)機(jī)構(gòu)
  • 在哪里學(xué)做網(wǎng)站網(wǎng)絡(luò)seo優(yōu)化公司
  • 自己可以做開獎網(wǎng)站嗎方象科技服務(wù)案例
  • 重慶做網(wǎng)站微信的公司百度灰色詞排名代發(fā)
  • 做海報的參考網(wǎng)站怎么做線上銷售
  • 用群暉nas做網(wǎng)站營銷策劃經(jīng)典案例
  • 做網(wǎng)站收會員費(fèi)徐州seo
  • 網(wǎng)站注冊協(xié)議怎樣自己做網(wǎng)站
  • 怎樣自建網(wǎng)站網(wǎng)頁優(yōu)化建議
  • 平面設(shè)計海報圖片seo按天計費(fèi)系統(tǒng)
  • 巨鹿網(wǎng)站建設(shè)網(wǎng)絡(luò)公司關(guān)鍵詞查詢工具
  • 安陽做網(wǎng)站的公司流量寶
  • 網(wǎng)站類型分類有哪些電商網(wǎng)站建設(shè) 網(wǎng)站定制開發(fā)
  • 長春網(wǎng)絡(luò)營銷外包泰州seo推廣
  • 網(wǎng)站節(jié)日制作快速網(wǎng)站輕松排名
  • 社交網(wǎng)站開發(fā)語言俄羅斯引擎搜索
  • 網(wǎng)站交換鏈接怎么做百度競價個人開戶
  • 網(wǎng)站代理什么意思百度seo排名優(yōu)化助手
  • 在合肥做網(wǎng)站多少錢千川推廣官網(wǎng)
  • 做網(wǎng)站需要云數(shù)據(jù)庫嗎2345網(wǎng)址導(dǎo)航手機(jī)版
  • 上海網(wǎng)站建設(shè)與設(shè)計公司好百度手機(jī)網(wǎng)頁版入口
  • 小說網(wǎng)站架構(gòu)win10優(yōu)化工具下載
  • 深圳福田做網(wǎng)站百度推廣開戶需要多少錢
  • 網(wǎng)站開發(fā)網(wǎng)站開發(fā)拼多多怎么查商品排名