This article was reproduced from: http://blog.csdn.net/luckywang1103/article/details/48053015
Copyright NOTICE: This article for Bo Master original article, without Bo Master permission not reproduced.
Directory (?) [+]
Since the standard ALSA is not used by default in Android, it uses Tinyalsa, so even command-line-based testing uses LIBTINYALSA. The Android system can be seen in real-time, such as audio channel switching, when the upper-level audio is ever more changeable.
1. Compiling Tinyalsa Companion Tools
$ mmm external/tinyalsa/
After compiling, it will produce tinyplay/tinymix/tinycap and so on tools.
Tinymix: View Configuration mixer
Tinyplay: Play Audio
Tinycap: Recording
2. View the current system's sound card
[Python]View PlainCopy
- [Email protected]:/ # cat/proc/asound/cards
- 0 [RKRK616]: rk_rk616-rk_rk616
- rk_rk616
- 1 [rockchipspdif]: Rockchip-spdif-rockchip-spdif
- Rockchip-spdif
- [Email protected]:/ #
3.tinymix Viewing Reverb
Tinymix how to use a. No parameters-Displays the current configuration B.tinymix [Ctrl ID] [VAR] do not add [var] to view the [Ctrl ID] Optional option.
[Python]View PlainCopy
- [Email protected]:/ # Tinymix
- Number of controls: 7
- CTL Type num Name value
- 0 ENUM 1 Playback Path OFF
- 1 ENUM 1 Capture mic Path mic OFF
- 2 ENUM 1 Voice call Path OFF
- 3 ENUM 1 Voip Path OFF
- 4 INT 2 Speaker Playback Volume 0 0
- 5 INT 2 headphone Playback Volume 0 0
- 6 ENUM 1 Modem Input Enable on
- [Email protected]:/ #
Correspondence Explanation:
English |
Chinese |
Note |
Playback Path |
Audio output Channels |
|
Capture MIC Path |
Audio input Channels |
|
Voice Call Pah |
Call Audio Channel |
The device does not have a call module and cannot be tested |
Voip Pah |
IP Telephony Audio Channel |
Scene gtalk; values are: SPK/HP_NO_MIC/BT |
Speaker Playback Volume |
Speaker volume |
Regardless of the upper volume value |
Headphone Playback Volume |
Headphone volume |
Ditto |
Modem Input Enable |
I don't know what to use. |
Test does not control audio input and output |
|
|
|
Playback path is:
English |
Chinese |
Note |
OFF |
Shut down |
|
RCV |
- |
|
SPK |
Speaker |
Common |
Hp |
Headset with wheat |
|
Hp_no_mic |
Headset without wheat |
Common |
Bt |
Bluetooth |
|
Spk_hp |
- |
|
Ring_spk |
- |
|
Ring_hp |
- |
|
Ring_hp_no_mic |
- |
|
Ring_spk_hp |
- |
|
Example: Switching the output to the speaker
[Email protected]:/# tinymix 0 SPK
About Tinymix Summary:
It was observed that the sound volume adjustment of the Android system did not directly use the Tinyalsa, but was based on the upper-level software, because no matter how the volume of the upper layer changed, the view here is 24 (take the device I use as an example). Channel switching is the real use of Tinyalsa, when playing music through different channels can be observed in real-time channel switching. Seeing Android on a website for about Alsa after 3 seconds of no sound playback has been confirmed, and I used to think that the Android system would permanently occupy the audio device.
When music is played through Bluetooth, it is no longer alsa. Tinymix view has to deal with the shutdown state, because the Android4.2 Bluetooth protocol all implemented in the user layer, directly go to the UART channel. Such a design method 1:30 will not understand.
4. Use Tinyplay to play WAV music
This is just one of the most basic players, so it is not supported to play MP3, and so on compressed-format music. Did not learn to use before, the Internet is said to be very troublesome, but now it seems no trouble, directly played the 44.1khz/44.8khz WAV music.
[Python]View PlainCopy
- [Email protected]:/ # tinyplay/sdcard/0_16.wav
- Playing Sample: 2 ch, 44100 Hz, + bit
- [Email protected]:/ #
Note: Before playing, you must first use the Tinymix to set the channel, the above has given the example set to the speaker, because the playback of the maximum volume used to play, so be careful to avoid being frightened. This will test the audio file upload.
5.tinycap use
[Email protected]:/# tinycap/sdcard/test.wav
can be recorded.
At present, only meet these, the first summary to this, you can at any time in depth.
20141014 Update:
1. The original Tinyalsa the original source code here Tinyalsa_github.
2. Fork a copy yourself, add a static compilation method, and busybox the Tinymix/tinyplay/tinycap/tinypcminfo integration into a tinyalsa.
Tinyalsa-utils contains the Tinymix/tinyplay/tinycap/tinypcminfo use method is Tinyalsa + tool name. For example, to run Tinymix, execute Tinyalsa Mix or Tinyalsa tinymix.
[Email protected]:/# Tinyalsa Mix
Mixer name: ' rk_rk616 '
Number of Controls:7
CTL Type num Name value
0 ENUM 1 Playback Path OFF
1 ENUM 1 Capture mic Path Main Mic
2 ENUM 1 Voice call Path OFF
3 ENUM 1 Voip Path OFF
4 INT 2 Speaker Playback Volume 0 0
5 INT 2 Headphone Playback Volume 0 0
6 ENUM 1 Modem Input Enable on
[Email protected]:/#
3. According to this [PATCH] tinyalsa:new package information, later Tinyalsa will also be integrated into the busybox.
4. If a failed to open mixer error occurs, your Android device is not ALSA audio driver, but legacy OSS device.
Make a static library reference: build and use static libraries and dynamic libraries in Linux
Other assumptions that have been confirmed as false:
1. Need to overwrite init.rc so that the system does not start Android-related services (MediaServer)
2. It is necessary to obtain tinyalsa by other means.
-
Top
Alsa tools in Linux and Tinyalsa tools in Android "Go"