Авария масштабного диапазона будет вызвать шумовые точкиIOS

Программируем под IOS
Ответить
Anonymous
 Авария масштабного диапазона будет вызвать шумовые точки

Сообщение Anonymous »

Я использую AvFoundation для создания приложения для многоотдачи редактора, которое может вставить несколько треков и клип, включая масштабирование некоторого клипа, чтобы изменить скорость клипа, (также я не уверен, является ли AVFoundation лучшим выбором для меня), но после создания шкалы с помощью ScaletImerange API есть какой-то короткий звук шума в воспроизведении. Кроме того, иногда это нормально, когда воспроизводится avmutablecompostion с использованием avPlayer с AvPlayerItem , но после экспорта с AvassetReader будет облагаться некоторым коротким шумом в файле результатов .... не уверен. />https://github.com/luckysmg/daily_image ... ipобразной try! AVAudioSession.sharedInstance().setCategory(.playback)
let composition = AVMutableComposition()
let asset = AVURLAsset(url: Bundle.main.url(forResource: "1", withExtension: "mp3")!)
let originalTrack = asset.tracks(withMediaType: .audio).first!

let divideTime:CMTime = CMTime(seconds: 2, preferredTimescale: 44100)

let timeRange1 = CMTimeRange(start: CMTime(value: .zero, timescale: 44100), end: divideTime)
let timeRange2 = CMTimeRange(start: divideTime, end: asset.duration)

let track = composition.addMutableTrack(withMediaType: .audio, preferredTrackID: kCMPersistentTrackID_Invalid)!

try! track.insertTimeRange(timeRange1, of: originalTrack, at: .zero)
try! track.insertTimeRange(timeRange2, of: originalTrack, at: timeRange1.end)

// scale speed 2x for second timeRange in new track.
// And will cause one "pi" noise sound
// Comment this line to re-listen the difference, the noise will be gone
track.scaleTimeRange(timeRange2, toDuration: CMTimeMultiplyByFloat64(timeRange2.duration, multiplier: 0.5))

let playerItem = AVPlayerItem(asset: composition)
let mix = AVMutableAudioMix()
let params = AVMutableAudioMixInputParameters(track: track)
params.setVolume(1, at: .zero)
mix.inputParameters.append(params)
playerItem.audioMix = mix
player.replaceCurrentItem(with: playerItem)
self.player.play()


Подробнее здесь: https://stackoverflow.com/questions/796 ... ise-points
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «IOS»