2025-07-09 15:22:03 +08:00

86 lines
2.3 KiB
Plaintext

/* eslint-disable */
// @ts-nocheck
// @ts-ignore-start
import { Result } from '../interface.uts'
function dataToByteArray(data: Data): Array<UInt8> {
const nsArray = UTSConversionHelper.dataToNSArray(data)
const buffer: Array<UInt8> = []
if (nsArray != null) {
for (const item of nsArray) {
const num = item as NSNumber
buffer.push(num.uint8Value)
}
}
return buffer
}
export const requestPermission = async function (): Promise<Result> {
return new Promise(resolve => {
RecordPermission.requestRecordPermission((granted: boolean) => {
if (granted) {
resolve({ code: 0, data: {}, message: '成功' })
} else {
resolve({ code: -1, data: {}, message: '失败' })
}
})
})
}
export const initAudio = async function (): Promise<Result> {
return new Promise(resolve => {
AudioRecorderManager.shared.initAudio((success: boolean, message: string) => {
if (success) {
resolve({ code: 0, data: {}, message: message })
} else {
resolve({ code: -1, data: {}, message: message })
}
})
})
}
export async function onStartRecord(callback: (data: Array<UInt8>) => void): Promise<Result> {
return new Promise(resolve => {
AudioRecorderManager.shared.startRecord(
(data: Data | null, success: boolean, message: string) => {
if (data != null) {
callback(dataToByteArray(data!))
} else if (success) {
resolve({ code: 0, data: {}, message: message })
} else {
resolve({ code: -1, data: {}, message: message })
}
}
)
})
}
export const stopRecord = async function (): Promise<Result> {
return new Promise(resolve => {
AudioRecorderManager.shared.stopRecord(
(success: boolean, message: string, filePath: string) => {
if (success) {
resolve({ code: 0, data: {}, message: message })
} else {
resolve({ code: -1, data: {}, message: message })
}
}
)
})
}
export const releaseRecord = async function (): Promise<Result> {
return new Promise(resolve => {
AudioRecorderManager.shared.releaseRecord((success: boolean, message: string) => {
if (success) {
resolve({ code: 0, data: {}, message: message })
} else {
resolve({ code: -1, data: {}, message: message })
}
})
})
}
// @ts-ignore-end