Skip to content

Commit

Permalink
fix #627
Browse files Browse the repository at this point in the history
  • Loading branch information
kingslay committed Nov 11, 2023
1 parent f73969d commit f469d15
Show file tree
Hide file tree
Showing 4 changed files with 16 additions and 12 deletions.
2 changes: 1 addition & 1 deletion FFmpegKit
6 changes: 3 additions & 3 deletions Sources/KSPlayer/AVPlayer/KSOptions.swift
Original file line number Diff line number Diff line change
Expand Up @@ -501,16 +501,16 @@ public extension KSOptions {
// iOS 有空间音频功能,所以不用处理
#if os(tvOS) || targetEnvironment(simulator)
if !(isUseAudioRenderer && isSpatialAudioEnabled) {
// 不要用maxRouteChannelsCount来panduan,有可能会不准。导致多音道设备也返回2(一开始播放一个2声道,就容易出现)
// 不要用maxRouteChannelsCount来判断,有可能会不准。导致多音道设备也返回2(一开始播放一个2声道,就容易出现),也不能用outputNumberOfChannels来判断,有可能会返回2
// channelCount = AVAudioChannelCount(min(AVAudioSession.sharedInstance().outputNumberOfChannels, maxRouteChannelsCount))
channelCount = AVAudioChannelCount(AVAudioSession.sharedInstance().outputNumberOfChannels)
channelCount = minChannels
}
#endif
} else {
try? AVAudioSession.sharedInstance().setPreferredOutputNumberOfChannels(2)
channelCount = 2
}
KSLog("[audio] outputNumberOfChannels: \(AVAudioSession.sharedInstance().outputNumberOfChannels)")
KSLog("[audio] outputNumberOfChannels: \(AVAudioSession.sharedInstance().outputNumberOfChannels) output channelCount: \(channelCount)")
return channelCount
}
#endif
Expand Down
5 changes: 5 additions & 0 deletions Sources/KSPlayer/MEPlayer/AudioGraphPlayer.swift
Original file line number Diff line number Diff line change
Expand Up @@ -175,6 +175,11 @@ public final class AudioGraphPlayer: AudioOutput, AudioDynamicsProcessor {
kAudioUnitScope_Output, 0,
&audioStreamBasicDescription,
audioStreamBasicDescriptionSize)
AudioUnitSetProperty(unit,
kAudioUnitProperty_AudioChannelLayout,
kAudioUnitScope_Output, 0,
channelLayout,
UInt32(MemoryLayout<AudioChannelLayout>.size))
}
if unit == audioUnitForTimePitch {
var inputCallbackStruct = renderCallbackStruct()
Expand Down
15 changes: 7 additions & 8 deletions Sources/KSPlayer/MEPlayer/AudioUnitPlayer.swift
Original file line number Diff line number Diff line change
Expand Up @@ -101,25 +101,24 @@ public final class AudioUnitPlayer: AudioOutput {
sourceNodeAudioFormat = audioFormat
sampleSize = audioFormat.sampleSize
var audioStreamBasicDescription = audioFormat.formatDescription.audioStreamBasicDescription
let audioStreamBasicDescriptionSize = UInt32(MemoryLayout<AudioStreamBasicDescription>.size)
AudioUnitSetProperty(audioUnitForOutput,
kAudioUnitProperty_StreamFormat,
kAudioUnitScope_Input, 0,
&audioStreamBasicDescription,
audioStreamBasicDescriptionSize)
UInt32(MemoryLayout<AudioStreamBasicDescription>.size))
let channelLayout = audioFormat.channelLayout?.layout
AudioUnitSetProperty(audioUnitForOutput,
kAudioUnitProperty_AudioChannelLayout,
kAudioUnitScope_Input, 0,
channelLayout,
UInt32(MemoryLayout<AudioChannelLayout>.size))
var inputCallbackStruct = renderCallbackStruct()
AudioUnitSetProperty(audioUnitForOutput,
kAudioUnitProperty_SetRenderCallback,
kAudioUnitScope_Input, 0,
&inputCallbackStruct,
UInt32(MemoryLayout<AURenderCallbackStruct>.size))
addRenderNotify(audioUnit: audioUnitForOutput)
let channelLayout = audioFormat.channelLayout?.layout
AudioUnitSetProperty(audioUnitForOutput,
kAudioUnitProperty_AudioChannelLayout,
kAudioUnitScope_Input, 0,
channelLayout,
UInt32(MemoryLayout<AudioChannelLayout>.size))
AudioUnitInitialize(audioUnitForOutput)
var size = UInt32(MemoryLayout<Float64>.size)
AudioUnitGetProperty(audioUnitForOutput,
Expand Down

0 comments on commit f469d15

Please sign in to comment.