86 lines
2.3 KiB
Plaintext
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
|