Android Studio 修改 QPython 3C 的 SL4A 函数 - 拍照录音录像、截屏录屏
以下SL4A函数,适用于 QPython 3C ( Python 3.11 )
以下函数需要打开相机权限:
takePicture( path = None ) (新增)
拍照(路径=空)
用系统相机拍照,可指定路径或用默认路径。
拍照成功返回路径,拍照取消返回None。
takeVideo( path = None, quality = 1 ) (新增)
录像(路径=空,画质=高清)
用系统相机录像,可指定路径或用默认路径。
画质:1表示高清画质,0表示渣画质。也可以用takeVideo.QUALITY_HIGH=1, takeVideo.QUALITY_LOW=0两个常数。
录像成功返回路径,录像取消返回None。
cameraCapturePicture(targetPath, cameraId = 0, useAutoFocus = True) (升级)
拍照并把文件保存在对应路径。
目标路径 (字符串)
相机ID (整数可选,0=后置,1=前置)
自动对焦 (布尔可选)
返回目标路径。
cameraCapturePicture.CAMERA_FRONT = 1
cameraCapturePicture.CAMERA_BACK = 0
recorderCaptureVideo(targetPath, duration = 10, cameraId = 0, quality = 8) (升级)
通过相机拍摄视频并把视频保存在对应路径。
目标路径 (字符串)
持续时间 (整数可选) 秒钟
相机ID (整数可选,0=后置,1=前置)
画质 (整数可选)
返回目标路径。
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) (新增)
相机手电筒 开/关
enabled (布尔型) True=开, False=关
scanBarcode( title = None ) (升级)
扫描二维码/条形码(扫码窗口标题=空)
返回二维码/条形码所代表的字符串。
scanBarcodeFromImage( path, compressRatio = 0, x = 0, y = 0, width = 0, height = 0) (新增)
从图片扫描二维码(图片路径,压缩比=0,x=0,y=0,宽=0,高=0)
原始图片路径 (字符串)
压缩比 (整数可选):
假设图片是1000x800:
如果 压缩比 == 0 或 1, 图片不压缩;
如果 压缩比 == 2, 图片被压缩至 500x400;
如果 压缩比 == 4, 图片被压缩至 250x200;
以此类推;
x 或 y (整数可选):
图片的起始位置, x==y==0 表示左上角;
宽 或 高 (整数可选):
从原始图片截取的大小, width==height==0 意味着原始宽和高;
返回二维码所代表的字符串。
以下函数需要打开录音权限:
recorderStartScreenRecord( path = None, audio = True, quality = 1, rotation = False, autoStart = True ) (新增)
开始录屏(路径=空,音频=有,画质=高清,旋转=否,自动开始=是)
可指定路径或用默认路径。
第一次录屏前会弹出授权对话框。
音频:有声录屏或无声录屏。
画质:1表示高清画质,0表示渣画质。也可以用recorderStartScreenRecord.QUALITY_HIGH=1, recorderStartScreenRecord.QUALITY_LOW=0两个常数。
旋转:录屏源宽度和高度旋转调换。
自动开始:如果某些情况不能自动开始录屏,会先建立一个空文件,通过recorderStart()手动开始。
部分机型只能竖屏启动录屏,横屏启动录屏会有异常,如果遇到这种情况录横屏:在竖屏以rotation=True,autoStart=False启动录屏,然后再转向横屏,用recorderStart()手动开始录屏。
返回录屏视频路径。
视频演示:https://www.bilibili.com/BV1vf4y1Y7Vv Part2
recorderStart() (新增)
准备录制完成后,手动开始录制,一般与recorderStartScreenRecord配合使用。
imageReaderGetScreenShot(path = None, delayMilliSec = 1000) (新增)
ImageReader截屏(路径=空,延迟毫秒数=1000)
可指定路径或用默认路径。
第一次截屏前会弹出授权对话框。
返回截图路径。
recorderStartMicrophone( targetPath = None ) (升级)
开始录音(目标路径=空)
可指定路径或用默认路径。
返回录音音频路径。
recorderPause() (新增)
暂停之前开始的录制。
需要 Android >= 7.0 。
recorderResume() (新增)
恢复之前暂停的录制。
需要 Android >= 7.0 。
recorderStop() (升级)
停止之前开始的录制。
recorderSoundVolumeDetect(interval=100) (新增)
开始音量监测(时间间隔毫秒数=100)
当interval>0,按照interval毫秒间隔,捕获音量分贝数;
当interval<=0,停止捕获音量分贝数。
recorderSoundVolumeGetDb() (新增)
返回音量分贝数。
其他函数:
recordAudio() (新增)
录音()
用系统录音机录音。
录音成功返回路径,录音取消返回None。
QPython 3C (Python 3.11) 视频演示:
https://www.bilibili.com/BV1NL411G7XX
如果需要 QPython 3C 源代码/Apk,请点击以下链接:
作者:乘着船@Bilibili
更多文章+下载链接:https://www.bilibili.com/read/readlist/rl321663