Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

514
Vistas
iOS: Cómo interceptar y manipular bytes en AVPlayer

¿Hay alguna forma de interceptar datos de bytes y realizar una operación XOR en cada byte antes de reproducir audio en AVPlayer?

Estoy creando una aplicación de transmisión de audio y uso un pequeño script escrito en C para agregar una capa simple de cifrado a los archivos MP3. En Android se decodifica en tiempo real así:

 @Override public int read(byte[] buffer, int offset, int readLength) throws FileDataSourceException { // ... if (readLength == 1 && offset >= 1 && offset <= 123) { buffer[offset] = (byte)(buffer[offset] ^ 11); } return bytesRead; } }

Como puede ver arriba, revertir el cifrado XOR es bastante fácil en Android, ya que uso ExoPlayer y anulo el método read() en sus clases de fuente de datos. ¿Hay alguna posibilidad de hacer lo mismo usando AVPlayer con Swift?

Aquí hay un diagrama de flujo de toda la idea:

Diagrama de flujo de cifrado de AVPlayer

Gracias.

over 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

Querrá usar MTAudioProcessingTap para esto, que es una propiedad de AVPlayer de AVAudioMix . En la devolución de llamada del proceso de toque, use MTAudioProcessingTapGetSourceAudio para tomar sus búferes. Una vez que tenga su referencia de búfer, puede borrar los datos.

Se necesita algo de repetitivo para que AVAudioMix y MTAudioProcessingTap se configuren correctamente. El código de muestra que tiene Apple es bastante antiguo, pero aún debería funcionar. https://developer.apple.com/library/archive/samplecode/AudioTapProcessor/Introduction/Intro.html#//apple_ref/doc/uid/DTS40012324

También tenga en cuenta que será más fácil hacer esto en Objective C, por varias razones. La interoperabilidad con su archivo C será más fácil, y es mucho más sencillo leer/escribir en el búfer en Objc. También se ejecutará más rápido que en Swift. Si está interesado en ver cómo se vería esto en Swift, hay un proyecto de muestra aquí: https://github.com/gchilds/MTAudioProcessingTap-in-Swift

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda