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,
|
deviceMetrics: environment.deviceMetrics,
|
||||||
isProgressPaused: isProgressPaused || i != focusedIndex,
|
isProgressPaused: isProgressPaused || i != focusedIndex,
|
||||||
isAudioMuted: self.audioMode == .off || (self.audioMode == .ambient && !self.isMuteSwitchOn),
|
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)),
|
hideUI: (i == focusedIndex && (self.itemSetPanState?.didBegin == false || self.itemSetPinchState != nil)),
|
||||||
visibilityFraction: 1.0 - abs(panFraction + cubeAdditionalRotationFraction),
|
visibilityFraction: 1.0 - abs(panFraction + cubeAdditionalRotationFraction),
|
||||||
isPanning: self.itemSetPanState?.didBegin == true,
|
isPanning: self.itemSetPanState?.didBegin == true,
|
||||||
|
@ -29,13 +29,13 @@ final class StoryItemContentComponent: Component {
|
|||||||
let context: AccountContext
|
let context: AccountContext
|
||||||
let peer: EnginePeer
|
let peer: EnginePeer
|
||||||
let item: EngineStoryItem
|
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.context = context
|
||||||
self.peer = peer
|
self.peer = peer
|
||||||
self.item = item
|
self.item = item
|
||||||
self.useAmbientMode = useAmbientMode
|
self.audioMode = audioMode
|
||||||
}
|
}
|
||||||
|
|
||||||
static func ==(lhs: StoryItemContentComponent, rhs: StoryItemContentComponent) -> Bool {
|
static func ==(lhs: StoryItemContentComponent, rhs: StoryItemContentComponent) -> Bool {
|
||||||
@ -138,8 +138,8 @@ final class StoryItemContentComponent: Component {
|
|||||||
imageReference: nil,
|
imageReference: nil,
|
||||||
streamVideo: .story,
|
streamVideo: .story,
|
||||||
loopVideo: true,
|
loopVideo: true,
|
||||||
enableSound: true,
|
enableSound: component.audioMode != .off,
|
||||||
beginWithAmbientSound: component.useAmbientMode,
|
beginWithAmbientSound: component.audioMode == .ambient,
|
||||||
mixWithOthers: true,
|
mixWithOthers: true,
|
||||||
useLargeThumbnail: false,
|
useLargeThumbnail: false,
|
||||||
autoFetchFullSizeThumbnail: false,
|
autoFetchFullSizeThumbnail: false,
|
||||||
@ -169,12 +169,16 @@ final class StoryItemContentComponent: Component {
|
|||||||
self.environment?.presentationProgressUpdated(1.0, true)
|
self.environment?.presentationProgressUpdated(1.0, true)
|
||||||
}
|
}
|
||||||
videoNode.ownsContentNodeUpdated = { [weak self] value in
|
videoNode.ownsContentNodeUpdated = { [weak self] value in
|
||||||
guard let self else {
|
guard let self, let component = self.component else {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
if value {
|
if value {
|
||||||
self.videoNode?.seek(0.0)
|
self.videoNode?.seek(0.0)
|
||||||
|
if component.audioMode != .off {
|
||||||
self.videoNode?.playOnceWithSound(playAndRecord: false, actionAtEnd: .stop)
|
self.videoNode?.playOnceWithSound(playAndRecord: false, actionAtEnd: .stop)
|
||||||
|
} else {
|
||||||
|
self.videoNode?.play()
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
videoNode.canAttachContent = true
|
videoNode.canAttachContent = true
|
||||||
|
@ -86,7 +86,7 @@ public final class StoryItemSetContainerComponent: Component {
|
|||||||
public let deviceMetrics: DeviceMetrics
|
public let deviceMetrics: DeviceMetrics
|
||||||
public let isProgressPaused: Bool
|
public let isProgressPaused: Bool
|
||||||
public let isAudioMuted: Bool
|
public let isAudioMuted: Bool
|
||||||
public let useAmbientMode: Bool
|
public let audioMode: StoryContentItem.AudioMode
|
||||||
public let hideUI: Bool
|
public let hideUI: Bool
|
||||||
public let visibilityFraction: CGFloat
|
public let visibilityFraction: CGFloat
|
||||||
public let isPanning: Bool
|
public let isPanning: Bool
|
||||||
@ -118,7 +118,7 @@ public final class StoryItemSetContainerComponent: Component {
|
|||||||
deviceMetrics: DeviceMetrics,
|
deviceMetrics: DeviceMetrics,
|
||||||
isProgressPaused: Bool,
|
isProgressPaused: Bool,
|
||||||
isAudioMuted: Bool,
|
isAudioMuted: Bool,
|
||||||
useAmbientMode: Bool,
|
audioMode: StoryContentItem.AudioMode,
|
||||||
hideUI: Bool,
|
hideUI: Bool,
|
||||||
visibilityFraction: CGFloat,
|
visibilityFraction: CGFloat,
|
||||||
isPanning: Bool,
|
isPanning: Bool,
|
||||||
@ -149,7 +149,7 @@ public final class StoryItemSetContainerComponent: Component {
|
|||||||
self.deviceMetrics = deviceMetrics
|
self.deviceMetrics = deviceMetrics
|
||||||
self.isProgressPaused = isProgressPaused
|
self.isProgressPaused = isProgressPaused
|
||||||
self.isAudioMuted = isAudioMuted
|
self.isAudioMuted = isAudioMuted
|
||||||
self.useAmbientMode = useAmbientMode
|
self.audioMode = audioMode
|
||||||
self.hideUI = hideUI
|
self.hideUI = hideUI
|
||||||
self.visibilityFraction = visibilityFraction
|
self.visibilityFraction = visibilityFraction
|
||||||
self.isPanning = isPanning
|
self.isPanning = isPanning
|
||||||
@ -201,7 +201,7 @@ public final class StoryItemSetContainerComponent: Component {
|
|||||||
if lhs.isAudioMuted != rhs.isAudioMuted {
|
if lhs.isAudioMuted != rhs.isAudioMuted {
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
if lhs.useAmbientMode != rhs.useAmbientMode {
|
if lhs.audioMode != rhs.audioMode {
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
if lhs.hideUI != rhs.hideUI {
|
if lhs.hideUI != rhs.hideUI {
|
||||||
@ -1047,7 +1047,7 @@ public final class StoryItemSetContainerComponent: Component {
|
|||||||
context: component.context,
|
context: component.context,
|
||||||
peer: component.slice.peer,
|
peer: component.slice.peer,
|
||||||
item: item.storyItem,
|
item: item.storyItem,
|
||||||
useAmbientMode: component.useAmbientMode
|
audioMode: component.audioMode
|
||||||
)),
|
)),
|
||||||
environment: {
|
environment: {
|
||||||
itemEnvironment
|
itemEnvironment
|
||||||
|
Loading…
x
Reference in New Issue
Block a user