mirror of
https://github.com/Swiftgram/Telegram-iOS.git
synced 2025-06-16 05:55:20 +00:00
Fix audio handling
This commit is contained in:
parent
624d0d49d5
commit
3ade624e87
@ -1023,7 +1023,7 @@ private final class StoryContainerScreenComponent: Component {
|
||||
deviceMetrics: environment.deviceMetrics,
|
||||
isProgressPaused: isProgressPaused || i != focusedIndex,
|
||||
isAudioMuted: self.audioMode == .off || (self.audioMode == .ambient && !self.isMuteSwitchOn),
|
||||
useAmbientMode: self.audioMode == .ambient,
|
||||
audioMode: self.audioMode,
|
||||
hideUI: (i == focusedIndex && (self.itemSetPanState?.didBegin == false || self.itemSetPinchState != nil)),
|
||||
visibilityFraction: 1.0 - abs(panFraction + cubeAdditionalRotationFraction),
|
||||
isPanning: self.itemSetPanState?.didBegin == true,
|
||||
|
@ -29,13 +29,13 @@ final class StoryItemContentComponent: Component {
|
||||
let context: AccountContext
|
||||
let peer: EnginePeer
|
||||
let item: EngineStoryItem
|
||||
let useAmbientMode: Bool
|
||||
let audioMode: StoryContentItem.AudioMode
|
||||
|
||||
init(context: AccountContext, peer: EnginePeer, item: EngineStoryItem, useAmbientMode: Bool) {
|
||||
init(context: AccountContext, peer: EnginePeer, item: EngineStoryItem, audioMode: StoryContentItem.AudioMode) {
|
||||
self.context = context
|
||||
self.peer = peer
|
||||
self.item = item
|
||||
self.useAmbientMode = useAmbientMode
|
||||
self.audioMode = audioMode
|
||||
}
|
||||
|
||||
static func ==(lhs: StoryItemContentComponent, rhs: StoryItemContentComponent) -> Bool {
|
||||
@ -138,8 +138,8 @@ final class StoryItemContentComponent: Component {
|
||||
imageReference: nil,
|
||||
streamVideo: .story,
|
||||
loopVideo: true,
|
||||
enableSound: true,
|
||||
beginWithAmbientSound: component.useAmbientMode,
|
||||
enableSound: component.audioMode != .off,
|
||||
beginWithAmbientSound: component.audioMode == .ambient,
|
||||
mixWithOthers: true,
|
||||
useLargeThumbnail: false,
|
||||
autoFetchFullSizeThumbnail: false,
|
||||
@ -169,12 +169,16 @@ final class StoryItemContentComponent: Component {
|
||||
self.environment?.presentationProgressUpdated(1.0, true)
|
||||
}
|
||||
videoNode.ownsContentNodeUpdated = { [weak self] value in
|
||||
guard let self else {
|
||||
guard let self, let component = self.component else {
|
||||
return
|
||||
}
|
||||
if value {
|
||||
self.videoNode?.seek(0.0)
|
||||
self.videoNode?.playOnceWithSound(playAndRecord: false, actionAtEnd: .stop)
|
||||
if component.audioMode != .off {
|
||||
self.videoNode?.playOnceWithSound(playAndRecord: false, actionAtEnd: .stop)
|
||||
} else {
|
||||
self.videoNode?.play()
|
||||
}
|
||||
}
|
||||
}
|
||||
videoNode.canAttachContent = true
|
||||
|
@ -86,7 +86,7 @@ public final class StoryItemSetContainerComponent: Component {
|
||||
public let deviceMetrics: DeviceMetrics
|
||||
public let isProgressPaused: Bool
|
||||
public let isAudioMuted: Bool
|
||||
public let useAmbientMode: Bool
|
||||
public let audioMode: StoryContentItem.AudioMode
|
||||
public let hideUI: Bool
|
||||
public let visibilityFraction: CGFloat
|
||||
public let isPanning: Bool
|
||||
@ -118,7 +118,7 @@ public final class StoryItemSetContainerComponent: Component {
|
||||
deviceMetrics: DeviceMetrics,
|
||||
isProgressPaused: Bool,
|
||||
isAudioMuted: Bool,
|
||||
useAmbientMode: Bool,
|
||||
audioMode: StoryContentItem.AudioMode,
|
||||
hideUI: Bool,
|
||||
visibilityFraction: CGFloat,
|
||||
isPanning: Bool,
|
||||
@ -149,7 +149,7 @@ public final class StoryItemSetContainerComponent: Component {
|
||||
self.deviceMetrics = deviceMetrics
|
||||
self.isProgressPaused = isProgressPaused
|
||||
self.isAudioMuted = isAudioMuted
|
||||
self.useAmbientMode = useAmbientMode
|
||||
self.audioMode = audioMode
|
||||
self.hideUI = hideUI
|
||||
self.visibilityFraction = visibilityFraction
|
||||
self.isPanning = isPanning
|
||||
@ -201,7 +201,7 @@ public final class StoryItemSetContainerComponent: Component {
|
||||
if lhs.isAudioMuted != rhs.isAudioMuted {
|
||||
return false
|
||||
}
|
||||
if lhs.useAmbientMode != rhs.useAmbientMode {
|
||||
if lhs.audioMode != rhs.audioMode {
|
||||
return false
|
||||
}
|
||||
if lhs.hideUI != rhs.hideUI {
|
||||
@ -1047,7 +1047,7 @@ public final class StoryItemSetContainerComponent: Component {
|
||||
context: component.context,
|
||||
peer: component.slice.peer,
|
||||
item: item.storyItem,
|
||||
useAmbientMode: component.useAmbientMode
|
||||
audioMode: component.audioMode
|
||||
)),
|
||||
environment: {
|
||||
itemEnvironment
|
||||
|
Loading…
x
Reference in New Issue
Block a user