react-native-audio-recorder-player
Version:
React Native Audio Recorder and Player.
104 lines (97 loc) • 3.11 kB
JavaScript
import { NitroModules } from 'react-native-nitro-modules';
export * from "./AudioRecorderPlayer.nitro.js";
class AudioRecorderPlayerImpl {
hybridObject = null;
getHybridObject() {
if (!this.hybridObject) {
try {
console.log('🔧 Creating AudioRecorderPlayer HybridObject...');
this.hybridObject = NitroModules.createHybridObject('AudioRecorderPlayer');
console.log('🔧 HybridObject created successfully:', !!this.hybridObject);
} catch (error) {
console.error('🔧 Failed to create HybridObject:', error);
throw new Error(`Failed to create AudioRecorderPlayer HybridObject: ${error}`);
}
}
return this.hybridObject;
}
// Recording methods
async startRecorder(uri, audioSets, meteringEnabled) {
try {
console.log('🔧 Getting HybridObject for startRecorder...');
const hybridObject = this.getHybridObject();
console.log('🔧 HybridObject obtained, calling startRecorder...');
console.log('🔧 Parameters:', {
uri,
audioSets,
meteringEnabled
});
const result = await hybridObject.startRecorder(uri, audioSets, meteringEnabled);
console.log('🔧 startRecorder completed with result:', result);
return result;
} catch (error) {
console.error('🔧 startRecorder failed:', error);
throw error;
}
}
async pauseRecorder() {
return this.getHybridObject().pauseRecorder();
}
async resumeRecorder() {
return this.getHybridObject().resumeRecorder();
}
async stopRecorder() {
return this.getHybridObject().stopRecorder();
}
// Playback methods
async startPlayer(uri, httpHeaders) {
return this.getHybridObject().startPlayer(uri, httpHeaders);
}
async stopPlayer() {
return this.getHybridObject().stopPlayer();
}
async pausePlayer() {
return this.getHybridObject().pausePlayer();
}
async resumePlayer() {
return this.getHybridObject().resumePlayer();
}
async seekToPlayer(time) {
return this.getHybridObject().seekToPlayer(time);
}
async setVolume(volume) {
return this.getHybridObject().setVolume(volume);
}
async setPlaybackSpeed(playbackSpeed) {
return this.getHybridObject().setPlaybackSpeed(playbackSpeed);
}
// Subscription
setSubscriptionDuration(sec) {
this.getHybridObject().setSubscriptionDuration(sec);
}
// Listeners
addRecordBackListener(callback) {
this.getHybridObject().addRecordBackListener(callback);
}
removeRecordBackListener() {
this.getHybridObject().removeRecordBackListener();
}
addPlayBackListener(callback) {
this.getHybridObject().addPlayBackListener(callback);
}
removePlayBackListener() {
this.getHybridObject().removePlayBackListener();
}
// Utility methods
mmss(secs) {
return this.getHybridObject().mmss(secs);
}
mmssss(milisecs) {
return this.getHybridObject().mmssss(milisecs);
}
}
// Create singleton instance
const AudioRecorderPlayer = new AudioRecorderPlayerImpl();
export default AudioRecorderPlayer;
//# sourceMappingURL=index.js.map
;