fixes for session recording with other participants

This commit is contained in:
Nuwan 2025-04-04 03:19:00 +05:30
parent ab34c37d80
commit 844633397f
4 changed files with 26 additions and 8 deletions

View File

@ -11,6 +11,7 @@ AppStore = context.AppStore
onSessionMixerChange: (sessionMixers) ->
console.log("_DEBUG_ SessionRecordBtn onSessionMixerChange", sessionMixers)
@setState({isRecording: sessionMixers.session.isRecording})
@setState({isRecordingInitiator: sessionMixers.session.recordingClinetId && sessionMixers.session.recordingClinetId == @app.clientId})
getInitialState: () ->
{childWindow: null, isRecording: false}
@ -24,7 +25,7 @@ AppStore = context.AppStore
return 'noclose'
handleClick: () ->
if @state.isRecording
if @state.isRecording && @state.isRecordingInitiator
RecordingActions.stopRecording()
else
@openRecording()
@ -50,12 +51,24 @@ AppStore = context.AppStore
render: () ->
btnStyles = "session-record session-record-btn left"
if this.state.isRecording
btnStyles = btnStyles+' button-orange'
if this.state.isRecordingInitiator
btnStyles = btnStyles+' button-orange'
`<a className={btnStyles} data-is-recording={this.state.isRecording} onClick={this.handleClick}>
<img src="/assets/content/icon_record.png" align="texttop" height="14" width="14"/>
STOP RECORDING
</a>`
else
btnStyles = btnStyles+' button-grey'
`<a className={btnStyles} data-is-recording={this.state.isRecording}>
<img src="/assets/content/icon_record.png" align="texttop" height="14" width="14"/>
RECORDING INPROGRESS
</a>`
else
btnStyles = btnStyles+' button-grey'
`<a className={btnStyles} data-is-recording={this.state.isRecording} onClick={this.handleClick}>
<img src="/assets/content/icon_record.png" align="texttop" height="14" width="14"/>
{this.state.isRecording ? 'STOP RECORDING' : 'RECORD'}
</a>`
`<a className={btnStyles} data-is-recording={this.state.isRecording} onClick={this.handleClick}>
<img src="/assets/content/icon_record.png" align="texttop" height="14" width="14"/>
RECORD
</a>`
})

View File

@ -2,7 +2,7 @@ context = window
@SessionHelper = class SessionHelper
constructor: (app, session, participantsEverSeen, isRecording, downloadingJamTrack, preppingVstEnable, sessionRules, subscriptionRules) ->
constructor: (app, session, participantsEverSeen, isRecording, downloadingJamTrack, preppingVstEnable, sessionRules, subscriptionRules, recordingClinetId) ->
@app = app
@session = session
@participantsEverSeen = participantsEverSeen
@ -12,6 +12,7 @@ context = window
@isLesson = @session?.lesson_session?
@sessionRules = sessionRules
@subscriptionRules = subscriptionRules
@recordingClinetId = recordingClinetId
if @isLesson
@lessonId = @session.lesson_session.id

View File

@ -31,6 +31,7 @@ BackendToFrontendFPS = {
$(context.AppStore).on('SessionEnded', @onSessionEnded)
onInitModel: (recordingModel) ->
console.log("_DEBUG_ RecordingStore.onInitModel", JSON.stringify(recordingModel) )
@recordingModel = recordingModel
this.trigger({isRecording: @recordingModel.isRecording()})
@ -106,6 +107,7 @@ BackendToFrontendFPS = {
@mixTransferred = true
onAudioRecordingFormatChanged: (audioFormat) ->
logger.debug("_DEBUG_ onAudioRecordingFormatChanged", JSON.stringify(@recordingModel))
this.trigger({audioRecordingFormat: audioFormat, isRecording: @recordingModel.isRecording()})
popupRecordingControls: () ->

View File

@ -95,7 +95,7 @@ ConfigureTracksActions = @ConfigureTracksActions
onVideoChanged: (@videoState) ->
issueChange: () ->
@helper = new context.SessionHelper(@app, @currentSession, @participantsEverSeen, @isRecording, @downloadingJamTrack, @enableVstTimeout?, @sessionRules, @subscriptionRules)
@helper = new context.SessionHelper(@app, @currentSession, @participantsEverSeen, @isRecording, @downloadingJamTrack, @enableVstTimeout?, @sessionRules, @subscriptionRules, @recordingClinetId)
this.trigger(@helper)
onWindowBackgrounded: () ->
@ -735,7 +735,9 @@ ConfigureTracksActions = @ConfigureTracksActions
onRecordingChanged: `async function(details) {
let detail, reason, timeline, title;
logger.debug("SessionStore.onRecordingChanged: " + details.cause);
console.log("_DEBUG_ SessionStore.onRecordingChanged: " + JSON.stringify(details));
this.isRecording = details.isRecording;
this.recordingClinetId = details.clientId;
switch (details.cause) {
case 'started':