Detailed description of Android audio data streams

Source: Internet
Author: User

The following figure shows the architecture of Android audio.

 

The detailed call path is as follows:

1. Audio Playback
Sample Code
Mediaplayer MP = new mediaplayer ();
MP. setdatasource (path_to_file );
MP. Prepare ();
MP. Start ();

 

1.1 mediaplayer MP = new mediaplayer ()

The implementation process is as follows:

Function Name File Name
Mediaplayer: mediaplayer Mediaplayer. Java
Mediaplayer: native_setup Mediaplayer. Java
Android_media_mediaplayer_native_setup Android_media_mediaplayer.cpp
Mediaplayer: mediaplayer Mediaplayer. cpp

 

1.2 MP. setdatasource (path_to_file );

The implementation process is as follows:

Function Name File Name
Mediaplayer: setdatasource Mediaplayer. Java
Android_media_mediaplayer_setdatasource Android_media_mediaplayer.cpp
Mediaplayer: setdatasource

Mediaplayer. cpp

-Mediaplayer: getmediaplayerservice Mediaplayer. cpp
-Imediaplayerservice Imediaplayerservice. h
-Imediaplayerservice: Create Mediaplayer. cpp
-- Mediaplayerservice: Create Mediaplayerservice. cpp
-Imediaplayer: setdatasource Mediaplayer. cpp
-- Bpmediaplayer: setdatasource Imediaplayer. cpp
-- Mediaplayerservice: Client: setdatasource (the actual operation is executed) Mediaplayerservice. cpp
-- Android: createplayer Mediaplayerservice. cpp
-- New stagefrightplayer Mediaplayerservice. cpp
-- New audiooutput Mediaplayerservice. cpp
-- Stagefrightplayer: setdatasource Stagefrightplayer. cpp
-- Awesomeplayer: setdatasource Awesomeplayer. cpp
-- Awesomeplayer: setperformance_l Awesomeplayer. cpp

 

1.3 MP. Prepare ()

Function Name File Name
Mediaplayer: Prepare Mediaplayer. Java
Android_media_mediaplayer_prepare Android_media_mediaplayer.cpp
Mediaplayer: Prepare Mediaplayer. cpp
Midifile: Prepare Midifile. cpp
Vorbisplayer: Prepare Vorbisplayer. cpp
Vorbisplayer: createoutputtrack Vorbisplayer. cpp
Audiooutput: Open Mediaplayerservice. cpp
Audiotrack: audiotrack Audiotrack. cpp
Audiosystem: get_audio_flinger Audiosystem. cpp
Audioflinger: createtrack Audioflinger. cpp
   
   

 

1.4 MP. Start ()

Function Name File Name
Mediaplayer: Start Mediaplayer. Java
Android_media_mediaplayer_start Android_media_mediaplayer.cpp
Mediaplayer: Start Mediaplayer. cpp
Pvplayer: Start Pvplayer. h
Midifile: Start Midifile. cpp
Vorbisplayer: Start Vorbisplayer. cpp
Audiotrack: Start Audiotrack. cpp

Mediaplayerservice: mediaplayerservice (mediaplayerservice. cpp) is created by the systemserver process. The system_init () function in the system_init.cpp file calls mediaplayerservice: instantiate to create

Getplayertype (mediaplayerservice. cpp) returns three types of player:
1) pv_player: play MP3
2) sonivox_player: play MIDI
3) vorbis_player: Play Ogg,

 

To put it simply, the playback process is as follows:
When the Java end initiates a call, mediaplayer will go to mediaplayerservice, and then call the corresponding decoding tool to decode and create audiotrack. All audiotracks to be output are merged in audioflinger: audiomixer, then, use audiohal (actual real-time player of audiohardwareinterface) to transmit it to the actual hardware for playing.


 

 

Related Article

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.