mirror of
				https://github.com/lingble/chatwoot.git
				synced 2025-10-30 18:47:51 +00:00 
			
		
		
		
	fix: Support audio in safari browser (#5943)
This commit is contained in:
		| @@ -23,6 +23,7 @@ import 'videojs-wavesurfer/dist/videojs.wavesurfer.js'; | ||||
| import 'videojs-record/dist/videojs.record.js'; | ||||
| import 'videojs-record/dist/plugins/videojs.record.opus-recorder.js'; | ||||
| import { format, addSeconds } from 'date-fns'; | ||||
| import { AUDIO_FORMATS } from 'shared/constants/messages'; | ||||
|  | ||||
| WaveSurfer.microphone = MicrophonePlugin; | ||||
|  | ||||
| @@ -70,13 +71,26 @@ export default { | ||||
|           record: { | ||||
|             audio: true, | ||||
|             video: false, | ||||
|             displayMilliseconds: false, | ||||
|             maxLength: 300, | ||||
|             audioEngine: 'opus-recorder', | ||||
|             audioWorkerURL: encoderWorker, | ||||
|             audioChannels: 1, | ||||
|             audioSampleRate: 48000, | ||||
|             audioBitRate: 128, | ||||
|             ...(this.audioRecordFormat === AUDIO_FORMATS.WEBM && { | ||||
|               monitorGain: 0, | ||||
|               recordingGain: 1, | ||||
|               numberOfChannels: 1, | ||||
|               encoderSampleRate: 16000, | ||||
|               originalSampleRateOverride: 16000, | ||||
|               streamPages: true, | ||||
|               maxFramesPerPage: 1, | ||||
|               encoderFrameSize: 1, | ||||
|               encoderPath: 'opus-recorder/dist/waveWorker.min.js', | ||||
|             }), | ||||
|             ...(this.audioRecordFormat === AUDIO_FORMATS.OGG && { | ||||
|               displayMilliseconds: false, | ||||
|               maxLength: 300, | ||||
|               audioEngine: 'opus-recorder', | ||||
|               audioWorkerURL: encoderWorker, | ||||
|               audioChannels: 1, | ||||
|               audioSampleRate: 48000, | ||||
|               audioBitRate: 128, | ||||
|             }), | ||||
|           }, | ||||
|         }, | ||||
|       }, | ||||
| @@ -86,6 +100,12 @@ export default { | ||||
|     isRecording() { | ||||
|       return this.player && this.player.record().isRecording(); | ||||
|     }, | ||||
|     audioRecordFormat() { | ||||
|       if (this.isAWebWidgetInbox) { | ||||
|         return AUDIO_FORMATS.WEBM; | ||||
|       } | ||||
|       return AUDIO_FORMATS.OGG; | ||||
|     }, | ||||
|   }, | ||||
|   mounted() { | ||||
|     window.Recorder = Recorder; | ||||
|   | ||||
| @@ -232,11 +232,18 @@ export default { | ||||
|       return this.showFileUpload || this.isNote; | ||||
|     }, | ||||
|     showAudioRecorderButton() { | ||||
|       // Disable audio recorder for safari browser as recording is not supported | ||||
|       const isSafari = /^((?!chrome|android|crios|fxios).)*safari/i.test( | ||||
|         navigator.userAgent | ||||
|       ); | ||||
|  | ||||
|       return ( | ||||
|         this.isFeatureEnabledonAccount( | ||||
|           this.accountId, | ||||
|           FEATURE_FLAGS.VOICE_RECORDER | ||||
|         ) && this.showAudioRecorder | ||||
|         ) && | ||||
|         this.showAudioRecorder && | ||||
|         !isSafari | ||||
|       ); | ||||
|     }, | ||||
|     showAudioPlayStopButton() { | ||||
|   | ||||
| @@ -72,3 +72,8 @@ export const CSAT_RATINGS = [ | ||||
|     color: '#44CE4B', | ||||
|   }, | ||||
| ]; | ||||
|  | ||||
| export const AUDIO_FORMATS = { | ||||
|   WEBM: 'audio/webm', | ||||
|   OGG: 'audio/ogg', | ||||
| }; | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 Muhsin Keloth
					Muhsin Keloth