iOS: как перехватывать и манипулировать байтами в AVPlayer

С .NET regex (и почти только .NET) вы можете использовать:

(?:(-\S+)\s*)+

Группа 1 будет содержать список всех подстроенных подстрок.

Или, может быть, просто использовать Matches в вашем случае достаточно:

var re = new Regex(@"-\S+");
var matches = re.Matches(str);
10
задан Lacho Tomov 20 March 2019 в 13:41
поделиться

1 ответ

Вы можете использовать MTAudioProcessingTap для этого, что является свойством AVPlayer AVAudioMix. В обратном вызове процесса крана используйте MTAudioProcessingTapGetSourceAudio для захвата ваших буферов. Если у вас есть ссылка на буфер, вы можете сохранить данные.

Для правильной настройки параметров AVAudioMix и MTAudioProcessingTap необходим некоторый шаблон. Пример кода, который есть у Apple, довольно старый, но все же должен работать. https://developer.apple.com/library/archive/samplecode/AudioTapProcessor/Introduction/Intro.html#//apple_ref/doc/uid/DTS40012324

Также обратите внимание, что это будет Проще сделать это в Цели С, по нескольким причинам. Взаимодействие с вашим C-файлом будет легче, и это намного проще для чтения / записи в буфер в Objc. Он также будет работать быстрее, чем в Swift. Если вам интересно посмотреть, как это будет выглядеть в swift, здесь приведен пример проекта: https://github.com/gchilds/MTAudioProcessingTap-in-Swift

0
ответ дан Alex Chase 20 March 2019 в 13:41
поделиться
Другие вопросы по тегам:

Похожие вопросы: