mirror of
https://github.com/vector-im/element-ios.git
synced 2024-09-29 07:42:40 +00:00
VB: Fix playLive after pause
This commit is contained in:
parent
b1cde5f719
commit
c8a1358170
1 changed files with 14 additions and 6 deletions
|
@ -154,6 +154,8 @@ class VoiceBroadcastPlaybackViewModel: VoiceBroadcastPlaybackViewModelType, Voic
|
||||||
private func stop() {
|
private func stop() {
|
||||||
MXLog.debug("[VoiceBroadcastPlaybackViewModel] stop")
|
MXLog.debug("[VoiceBroadcastPlaybackViewModel] stop")
|
||||||
|
|
||||||
|
isLivePlayback = false
|
||||||
|
|
||||||
// Objects will be released on audioPlayerDidStopPlaying
|
// Objects will be released on audioPlayerDidStopPlaying
|
||||||
audioPlayer?.stop()
|
audioPlayer?.stop()
|
||||||
}
|
}
|
||||||
|
@ -171,7 +173,7 @@ class VoiceBroadcastPlaybackViewModel: VoiceBroadcastPlaybackViewModelType, Voic
|
||||||
private func processPendingVoiceBroadcastChunksForLivePlayback() {
|
private func processPendingVoiceBroadcastChunksForLivePlayback() {
|
||||||
let chunks = reorderVoiceBroadcastChunks(chunks: Array(voiceBroadcastAggregator.voiceBroadcast.chunks))
|
let chunks = reorderVoiceBroadcastChunks(chunks: Array(voiceBroadcastAggregator.voiceBroadcast.chunks))
|
||||||
if let lastChunk = chunks.last {
|
if let lastChunk = chunks.last {
|
||||||
MXLog.debug("[VoiceBroadcastPlaybackViewModel] processPendingVoiceBroadcastChunksForLivePlayback. Use the last chunk (sequence: \(lastChunk.sequence) out of the \(voiceBroadcastChunkQueue) chunks")
|
MXLog.debug("[VoiceBroadcastPlaybackViewModel] processPendingVoiceBroadcastChunksForLivePlayback. Use the last chunk: sequence: \(lastChunk.sequence) out of the \(voiceBroadcastChunkQueue.count) chunks")
|
||||||
voiceBroadcastChunkQueue = [lastChunk]
|
voiceBroadcastChunkQueue = [lastChunk]
|
||||||
}
|
}
|
||||||
processNextVoiceBroadcastChunk()
|
processNextVoiceBroadcastChunk()
|
||||||
|
@ -214,7 +216,17 @@ class VoiceBroadcastPlaybackViewModel: VoiceBroadcastPlaybackViewModelType, Voic
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
if self.audioPlayer == nil {
|
if let audioPlayer = self.audioPlayer {
|
||||||
|
// Append the chunk to the current playlist
|
||||||
|
audioPlayer.addContentFromURL(result.url)
|
||||||
|
|
||||||
|
// Resume the player. Needed after a pause
|
||||||
|
if audioPlayer.isPlaying == false {
|
||||||
|
MXLog.debug("[VoiceBroadcastPlaybackViewModel] processNextVoiceBroadcastChunk: Resume the player")
|
||||||
|
audioPlayer.play()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else {
|
||||||
// Init and start the player on the first chunk
|
// Init and start the player on the first chunk
|
||||||
let audioPlayer = self.mediaServiceProvider.audioPlayerForIdentifier(result.eventIdentifier)
|
let audioPlayer = self.mediaServiceProvider.audioPlayerForIdentifier(result.eventIdentifier)
|
||||||
audioPlayer.registerDelegate(self)
|
audioPlayer.registerDelegate(self)
|
||||||
|
@ -223,10 +235,6 @@ class VoiceBroadcastPlaybackViewModel: VoiceBroadcastPlaybackViewModelType, Voic
|
||||||
audioPlayer.play()
|
audioPlayer.play()
|
||||||
self.audioPlayer = audioPlayer
|
self.audioPlayer = audioPlayer
|
||||||
}
|
}
|
||||||
else {
|
|
||||||
// Append the chunk to the current playlist
|
|
||||||
self.audioPlayer?.addContentFromURL(result.url)
|
|
||||||
}
|
|
||||||
|
|
||||||
case .failure (let error):
|
case .failure (let error):
|
||||||
MXLog.error("[VoiceBroadcastPlaybackViewModel] processVoiceBroadcastChunkQueue: loadAttachment error", context: error)
|
MXLog.error("[VoiceBroadcastPlaybackViewModel] processVoiceBroadcastChunkQueue: loadAttachment error", context: error)
|
||||||
|
|
Loading…
Reference in a new issue