Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

504
Views
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 answers
Answer question

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!