Android Studio 修改 QPython 3C 的 SL4A 函數(shù) - 拍照錄音錄像、截屏錄屏
以下SL4A函數(shù),適用于 QPython 3C ( Python 3.11?)
以下函數(shù)需要打開(kāi)相機(jī)權(quán)限:
takePicture( path = None )? (新增)
拍照(路徑=空)
用系統(tǒng)相機(jī)拍照,可指定路徑或用默認(rèn)路徑。
拍照成功返回路徑,拍照取消返回None。
takeVideo( path = None, quality = 1 )? (新增)
錄像(路徑=空,畫質(zhì)=高清)
用系統(tǒng)相機(jī)錄像,可指定路徑或用默認(rèn)路徑。
畫質(zhì):1表示高清畫質(zhì),0表示渣畫質(zhì)。也可以用takeVideo.QUALITY_HIGH=1,?takeVideo.QUALITY_LOW=0兩個(gè)常數(shù)。
錄像成功返回路徑,錄像取消返回None。
cameraCapturePicture(targetPath, cameraId = 0, useAutoFocus = True) (升級(jí))
拍照并把文件保存在對(duì)應(yīng)路徑。
目標(biāo)路徑 (字符串)
相機(jī)ID?(整數(shù)可選,0=后置,1=前置)
自動(dòng)對(duì)焦 (布爾可選)
返回目標(biāo)路徑。
cameraCapturePicture.CAMERA_FRONT? =? 1
cameraCapturePicture.CAMERA_BACK? ?=? 0
recorderCaptureVideo(targetPath, duration = 10, cameraId = 0, quality = 8) (升級(jí))
通過(guò)相機(jī)拍攝視頻并把視頻保存在對(duì)應(yīng)路徑。
目標(biāo)路徑 (字符串)
持續(xù)時(shí)間 (整數(shù)可選) 秒鐘
相機(jī)ID?(整數(shù)可選,0=后置,1=前置)
畫質(zhì) (整數(shù)可選)
返回目標(biāo)路徑。
recorderCaptureVideo.QUALITY_8KUHD = 13
recorderCaptureVideo.QUALITY_2K = 12
recorderCaptureVideo.QUALITY_4KDCI = 10
recorderCaptureVideo.QUALITY_2160P = 8
recorderCaptureVideo.QUALITY_1080P = 6
recorderCaptureVideo.QUALITY_720P = 5
recorderCaptureVideo.CAMERA_FRONT = 1
recorderCaptureVideo.CAMERA_BACK = 0
cameraSetTorchMode(enabled) (新增)
相機(jī)手電筒 開(kāi)/關(guān)
enabled (布爾型) True=開(kāi), False=關(guān)
scanBarcode( title = None )? (升級(jí))
掃描二維碼/條形碼(掃碼窗口標(biāo)題=空)
返回二維碼/條形碼所代表的字符串。
scanBarcodeFromImage( path, compressRatio = 0, x = 0, y = 0, width = 0, height = 0) (新增)
從圖片掃描二維碼(圖片路徑,壓縮比=0,x=0,y=0,寬=0,高=0)
原始圖片路徑 (字符串)
壓縮比 (整數(shù)可選):
? 假設(shè)圖片是1000x800:
? 如果 壓縮比?== 0 或?1, 圖片不壓縮;
? 如果 壓縮比?== 2, 圖片被壓縮至?500x400;
? 如果 壓縮比?== 4, 圖片被壓縮至 250x200;
? 以此類推;
x 或?y (整數(shù)可選):
? 圖片的起始位置, x==y==0 表示左上角;
寬 或 高?(整數(shù)可選):
? 從原始圖片截取的大小, width==height==0 意味著原始寬和高;
返回二維碼所代表的字符串。
以下函數(shù)需要打開(kāi)錄音權(quán)限:
recorderStartScreenRecord(?path = None, audio = True, quality = 1, rotation = False, autoStart = True )? (新增)
開(kāi)始錄屏(路徑=空,音頻=有,畫質(zhì)=高清,旋轉(zhuǎn)=否,自動(dòng)開(kāi)始=是)
可指定路徑或用默認(rèn)路徑。
第一次錄屏前會(huì)彈出授權(quán)對(duì)話框。
音頻:有聲錄屏或無(wú)聲錄屏。
畫質(zhì):1表示高清畫質(zhì),0表示渣畫質(zhì)。也可以用recorderStartScreenRecord.QUALITY_HIGH=1,?recorderStartScreenRecord.QUALITY_LOW=0兩個(gè)常數(shù)。
旋轉(zhuǎn):錄屏源寬度和高度旋轉(zhuǎn)調(diào)換。
自動(dòng)開(kāi)始:如果某些情況不能自動(dòng)開(kāi)始錄屏,會(huì)先建立一個(gè)空文件,通過(guò)recorderStart()手動(dòng)開(kāi)始。
部分機(jī)型只能豎屏啟動(dòng)錄屏,橫屏啟動(dòng)錄屏?xí)挟惓?,如果遇到這種情況錄橫屏:在豎屏以rotation=True,autoStart=False啟動(dòng)錄屏,然后再轉(zhuǎn)向橫屏,用recorderStart()手動(dòng)開(kāi)始錄屏。
返回錄屏視頻路徑。
視頻演示:https://www.bilibili.com/BV1vf4y1Y7Vv? Part2
recorderStart() (新增)
準(zhǔn)備錄制完成后,手動(dòng)開(kāi)始錄制,一般與recorderStartScreenRecord配合使用。
imageReaderGetScreenShot(path = None, delayMilliSec = 1000) (新增)
ImageReader截屏(路徑=空,延遲毫秒數(shù)=1000)
可指定路徑或用默認(rèn)路徑。
第一次截屏前會(huì)彈出授權(quán)對(duì)話框。
返回截圖路徑。
recorderStartMicrophone( targetPath = None )? (升級(jí))
開(kāi)始錄音(目標(biāo)路徑=空)
可指定路徑或用默認(rèn)路徑。
返回錄音音頻路徑。
recorderPause()??(新增)
暫停之前開(kāi)始的錄制。
需要 Android >= 7.0?。
recorderResume()??(新增)
恢復(fù)之前暫停的錄制。
需要?Android >= 7.0?。
recorderStop()??(升級(jí))
停止之前開(kāi)始的錄制。
recorderSoundVolumeDetect(interval=100)? (新增)
開(kāi)始音量監(jiān)測(cè)(時(shí)間間隔毫秒數(shù)=100)
當(dāng)interval>0,按照interval毫秒間隔,捕獲音量分貝數(shù);
當(dāng)interval<=0,停止捕獲音量分貝數(shù)。
recorderSoundVolumeGetDb()? (新增)
返回音量分貝數(shù)。
其他函數(shù):
recordAudio()? (新增)
錄音()
用系統(tǒng)錄音機(jī)錄音。
錄音成功返回路徑,錄音取消返回None。
QPython 3C (Python 3.11) 視頻演示:
https://www.bilibili.com/BV1NL411G7XX
如果需要 QPython 3C 源代碼/Apk,請(qǐng)點(diǎn)擊以下鏈接:
作者:乘著船@Bilibili
更多文章+下載鏈接:https://www.bilibili.com/read/readlist/rl321663