From 3e79926ad42e3185bda22d91ba5b36138ad51208 Mon Sep 17 00:00:00 2001 From: virtuacoplenny Date: Tue, 5 Jun 2018 11:20:43 -0700 Subject: [PATCH] feat(recording): add sounds for when recording starts and stops (#3078) * feat(recording): add sounds for when recording starts and stops * squash: use constants, play sounds for file only * squash: rename recordingStopped.mp3 -> recordingOff.mp3 * squash: flip var declaration for alpha order --- android/sdk/build.gradle | 2 + ios/sdk/sdk.xcodeproj/project.pbxproj | 8 +++ react/features/recording/constants.js | 16 ++++++ react/features/recording/functions.js | 13 +++++ react/features/recording/middleware.js | 68 +++++++++++++++++++++++-- react/features/recording/sounds.js | 15 ++++++ sounds/recordingOff.mp3 | Bin 0 -> 21425 bytes sounds/recordingOn.mp3 | Bin 0 -> 21708 bytes 8 files changed, 119 insertions(+), 3 deletions(-) create mode 100644 react/features/recording/sounds.js create mode 100644 sounds/recordingOff.mp3 create mode 100644 sounds/recordingOn.mp3 diff --git a/android/sdk/build.gradle b/android/sdk/build.gradle index 21d44ab4f7..b614183617 100644 --- a/android/sdk/build.gradle +++ b/android/sdk/build.gradle @@ -78,6 +78,8 @@ gradle.projectsEvaluated { from("${projectDir}/../../sounds/left.wav") from("${projectDir}/../../sounds/outgoingRinging.wav") from("${projectDir}/../../sounds/outgoingStart.wav") + from("${projectDir}/../../sounds/recordingOn.mp3") + from("${projectDir}/../../sounds/recordingOff.mp3") from("${projectDir}/../../sounds/rejected.wav") into("${bundlePath}/assets/sounds") } diff --git a/ios/sdk/sdk.xcodeproj/project.pbxproj b/ios/sdk/sdk.xcodeproj/project.pbxproj index bb7c0d7233..af0f612dd2 100644 --- a/ios/sdk/sdk.xcodeproj/project.pbxproj +++ b/ios/sdk/sdk.xcodeproj/project.pbxproj @@ -29,6 +29,8 @@ 0BCA496C1EC4BBF900B793EE /* jitsi.ttf in Resources */ = {isa = PBXBuildFile; fileRef = 0BCA496B1EC4BBF900B793EE /* jitsi.ttf */; }; 0BD906EA1EC0C00300C8C18E /* JitsiMeet.h in Headers */ = {isa = PBXBuildFile; fileRef = 0BD906E81EC0C00300C8C18E /* JitsiMeet.h */; settings = {ATTRIBUTES = (Public, ); }; }; 0F65EECE1D95DA94561BB47E /* libPods-JitsiMeet.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 03F2ADC957FF109849B7FCA1 /* libPods-JitsiMeet.a */; }; + 6C31EDC820C06D490089C899 /* recordingOn.mp3 in Resources */ = {isa = PBXBuildFile; fileRef = 6C31EDC720C06D490089C899 /* recordingOn.mp3 */; }; + 6C31EDCA20C06D530089C899 /* recordingOff.mp3 in Resources */ = {isa = PBXBuildFile; fileRef = 6C31EDC920C06D530089C899 /* recordingOff.mp3 */; }; 75635B0A20751D6D00F29C9F /* joined.wav in Resources */ = {isa = PBXBuildFile; fileRef = 75635B0820751D6D00F29C9F /* joined.wav */; }; 75635B0B20751D6D00F29C9F /* left.wav in Resources */ = {isa = PBXBuildFile; fileRef = 75635B0920751D6D00F29C9F /* left.wav */; }; A4414AE020B37F1A003546E6 /* rejected.wav in Resources */ = {isa = PBXBuildFile; fileRef = A4414ADF20B37F1A003546E6 /* rejected.wav */; }; @@ -78,6 +80,8 @@ 0BD906E51EC0C00300C8C18E /* JitsiMeet.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = JitsiMeet.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 0BD906E81EC0C00300C8C18E /* JitsiMeet.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = JitsiMeet.h; sourceTree = ""; }; 0BD906E91EC0C00300C8C18E /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + 6C31EDC720C06D490089C899 /* recordingOn.mp3 */ = {isa = PBXFileReference; lastKnownFileType = audio.mp3; name = recordingOn.mp3; path = ../../sounds/recordingOn.mp3; sourceTree = ""; }; + 6C31EDC920C06D530089C899 /* recordingOff.mp3 */ = {isa = PBXFileReference; lastKnownFileType = audio.mp3; name = recordingOff.mp3; path = ../../sounds/recordingOff.mp3; sourceTree = ""; }; 75635B0820751D6D00F29C9F /* joined.wav */ = {isa = PBXFileReference; lastKnownFileType = audio.wav; name = joined.wav; path = ../../sounds/joined.wav; sourceTree = ""; }; 75635B0920751D6D00F29C9F /* left.wav */ = {isa = PBXFileReference; lastKnownFileType = audio.wav; name = left.wav; path = ../../sounds/left.wav; sourceTree = ""; }; 98E09B5C73D9036B4ED252FC /* Pods-JitsiMeet.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-JitsiMeet.debug.xcconfig"; path = "../Pods/Target Support Files/Pods-JitsiMeet/Pods-JitsiMeet.debug.xcconfig"; sourceTree = ""; }; @@ -118,6 +122,8 @@ 0BCA49681EC4BBE500B793EE /* Resources */ = { isa = PBXGroup; children = ( + 6C31EDC720C06D490089C899 /* recordingOn.mp3 */, + 6C31EDC920C06D530089C899 /* recordingOff.mp3 */, A4414ADF20B37F1A003546E6 /* rejected.wav */, 0BC4B8681F8C01E100CE8B21 /* CallKitIcon.png */, C6245F5B2053091D0040BE68 /* image-resize@2x.png */, @@ -315,10 +321,12 @@ buildActionMask = 2147483647; files = ( 0B49424520AD8DBD00BD2DE0 /* outgoingStart.wav in Resources */, + 6C31EDCA20C06D530089C899 /* recordingOff.mp3 in Resources */, A4414AE020B37F1A003546E6 /* rejected.wav in Resources */, 0B49424620AD8DBD00BD2DE0 /* outgoingRinging.wav in Resources */, 0BCA496C1EC4BBF900B793EE /* jitsi.ttf in Resources */, C6245F5D2053091D0040BE68 /* image-resize@2x.png in Resources */, + 6C31EDC820C06D490089C899 /* recordingOn.mp3 in Resources */, 0BC4B8691F8C03A700CE8B21 /* CallKitIcon.png in Resources */, 75635B0B20751D6D00F29C9F /* left.wav in Resources */, 75635B0A20751D6D00F29C9F /* joined.wav in Resources */, diff --git a/react/features/recording/constants.js b/react/features/recording/constants.js index 3e76a775f2..a8e98b978c 100644 --- a/react/features/recording/constants.js +++ b/react/features/recording/constants.js @@ -1,5 +1,21 @@ // @flow +/** + * The identifier of the sound to be played when a recording or live streaming + * session is stopped. + * + * @type {string} + */ +export const RECORDING_OFF_SOUND_ID = 'RECORDING_OFF_SOUND'; + +/** + * The identifier of the sound to be played when a recording or live streaming + * session is started. + * + * @type {string} + */ +export const RECORDING_ON_SOUND_ID = 'RECORDING_ON_SOUND'; + /** * Expected supported recording types. JIBRI is known to support live streaming * whereas JIRECON is for recording. diff --git a/react/features/recording/functions.js b/react/features/recording/functions.js index ad215a4a96..cd789b5076 100644 --- a/react/features/recording/functions.js +++ b/react/features/recording/functions.js @@ -16,3 +16,16 @@ export function getActiveSession(state, mode) { && (sessionData.status === statusConstants.ON || sessionData.status === statusConstants.PENDING)); } + +/** + * Searches in the passed in redux state for a recording session that matches + * the passed in recording session ID. + * + * @param {Object} state - The redux state to search in. + * @param {string} id - The ID of the recording session to find. + * @returns {Object|undefined} + */ +export function getSessionById(state, id) { + return state['features/recording'].sessionDatas.find( + sessionData => sessionData.id === id); +} diff --git a/react/features/recording/middleware.js b/react/features/recording/middleware.js index 407735ee36..5afc8fb260 100644 --- a/react/features/recording/middleware.js +++ b/react/features/recording/middleware.js @@ -1,10 +1,28 @@ /* @flow */ import { CONFERENCE_WILL_JOIN } from '../base/conference'; -import { JitsiConferenceEvents } from '../base/lib-jitsi-meet'; +import { + JitsiConferenceEvents, + JitsiRecordingConstants +} from '../base/lib-jitsi-meet'; import { MiddlewareRegistry } from '../base/redux'; +import { + playSound, + registerSound, + stopSound, + unregisterSound +} from '../base/sounds'; + +import { APP_WILL_MOUNT, APP_WILL_UNMOUNT } from '../app'; import { updateRecordingSessionData } from './actions'; +import { RECORDING_SESSION_UPDATED } from './actionTypes'; +import { RECORDING_OFF_SOUND_ID, RECORDING_ON_SOUND_ID } from './constants'; +import { getSessionById } from './functions'; +import { + RECORDING_OFF_SOUND_FILE, + RECORDING_ON_SOUND_FILE +} from './sounds'; /** * The redux middleware to handle the recorder updates in a React way. @@ -12,10 +30,34 @@ import { updateRecordingSessionData } from './actions'; * @param {Store} store - The redux store. * @returns {Function} */ -MiddlewareRegistry.register(({ dispatch }) => next => action => { +MiddlewareRegistry.register(store => next => action => { + let oldSessionData; + + if (action.type === RECORDING_SESSION_UPDATED) { + oldSessionData + = getSessionById(store.getState(), action.sessionData.id); + } + const result = next(action); switch (action.type) { + case APP_WILL_MOUNT: + store.dispatch(registerSound( + RECORDING_OFF_SOUND_ID, + RECORDING_OFF_SOUND_FILE)); + + store.dispatch(registerSound( + RECORDING_ON_SOUND_ID, + RECORDING_ON_SOUND_FILE)); + + break; + + case APP_WILL_UNMOUNT: + store.dispatch(unregisterSound(RECORDING_OFF_SOUND_ID)); + store.dispatch(unregisterSound(RECORDING_ON_SOUND_ID)); + + break; + case CONFERENCE_WILL_JOIN: { const { conference } = action; @@ -24,7 +66,7 @@ MiddlewareRegistry.register(({ dispatch }) => next => action => { recorderSession => { if (recorderSession && recorderSession.getID()) { - dispatch( + store.dispatch( updateRecordingSessionData(recorderSession)); return; @@ -33,6 +75,26 @@ MiddlewareRegistry.register(({ dispatch }) => next => action => { break; } + + case RECORDING_SESSION_UPDATED: { + const updatedSessionData + = getSessionById(store.getState(), action.sessionData.id); + + if (updatedSessionData.mode === JitsiRecordingConstants.mode.FILE) { + const { OFF, ON } = JitsiRecordingConstants.status; + + if (updatedSessionData.status === ON + && (!oldSessionData || oldSessionData.status !== ON)) { + store.dispatch(playSound(RECORDING_ON_SOUND_ID)); + } else if (updatedSessionData.status === OFF + && (!oldSessionData || oldSessionData.status !== OFF)) { + store.dispatch(stopSound(RECORDING_ON_SOUND_ID)); + store.dispatch(playSound(RECORDING_OFF_SOUND_ID)); + } + } + + break; + } } return result; diff --git a/react/features/recording/sounds.js b/react/features/recording/sounds.js new file mode 100644 index 0000000000..21597acd96 --- /dev/null +++ b/react/features/recording/sounds.js @@ -0,0 +1,15 @@ +/** + * The name of the bundled audio file which will be played for when a recording + * or live streaming is stopped. + * + * @type {string} + */ +export const RECORDING_OFF_SOUND_FILE = 'recordingOff.mp3'; + +/** + * The name of the bundled audio file which will be played for when a recording + * or live streaming is started. + * + * @type {string} + */ +export const RECORDING_ON_SOUND_FILE = 'recordingOn.mp3'; diff --git a/sounds/recordingOff.mp3 b/sounds/recordingOff.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..7ac24a278bf643f7e80ffe52cfc202a89ed2c4f2 GIT binary patch literal 21425 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 literal 0 HcmV?d00001 diff --git a/sounds/recordingOn.mp3 b/sounds/recordingOn.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..c3f60d2015543a19f28c259c1e790df42082f05d GIT binary patch literal 21708 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