androidaudiousbsamsung-mobileandroid-usb

Android, AOA2, USB Isochronous Audio Interface ( Streaming )


Environment:

Implementation

In accordance with this link, I am trying to receive the USB Isochronous Audio ( Streaming ) from my Samsung G5 Device, I switch the device to accessory mode while setting the audio mode to 44100x2x16 using Request 58.

The device is successfully switched to Accessory mode exposed as "0x2D05 - accessory + audio + adb".

I successfully connect to the Isochronous Endpoint ( #0x83 ) and start reading Isochronous packets/Frames.

However, while the packets are successfully received there is no payload...

Questions

Should I setup anything other than the above mentioned? Should I send any USB Control commands to the Endpoint and/or audio Interface?


Solution

  • Isochronous USB Audio actually work in the above mentioned manner, start the device, switch to AOA2, connect to the Isochronous Endpoint and start reading.

    Actual payload exist only when audio is played on the device, and thus, mute packets are not streamed through ( rather empty packets are sent when there is no Audio on the device ).

    There is one more caveat to the above mentioned, audio streaming stop when using adb.exe and executing the following:

    adb shell screencap
    

    This seems like a Bug with either Android v4.4.2 or with it's Samsung Permutation, The cause might be due to USB high traffic, OR, due to a problem w/ OS audio routing.

    Issue reported @ https://code.google.com/p/android/issues/detail?id=82014

    UPDATE:
    With "Nexus 5" this actually works, which means, that the problem is specific for Samsung...