一区二区三区日韩精品-日韩经典一区二区三区-五月激情综合丁香婷婷-欧美精品中文字幕专区

分享

Android Audio 數(shù)據(jù)流詳解 - forest的日志 - 網(wǎng)易博客

 xrzs 2010-04-21

Android Audio 數(shù)據(jù)流詳解

IT技術(shù) 2010-01-28 15:56:41 閱讀397 評論1 字號:

Android Audio Architecture 圖如下所示
Android Audio 數(shù)據(jù)流詳解 - forest - forest

詳細(xì)調(diào)用路徑如下

1.       音頻播放

示例代碼

MediaPlayer mp = new MediaPlayer();

mp.setDataSource(PATH_TO_FILE);

mp.prepare();

mp.start();

 

1.1 MediaPlayer mp = new MediaPlayer()

函數(shù)調(diào)用

文件

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)

函數(shù)調(diào)用

文件

MediaPlayer:: setDataSource

MediaPlayer.Java

MediaPlayer::setDataSource

MediaPlayer.Java

android_media_MediaPlayer_setDataSource

android_media_MediaPlayer.cpp

MediaPlayer:: setDataSource

MediaPlayer.cpp

MediaPlayer::getMediaPlayerService

MediaPlayer.cpp

IMediaPlayerService

IMediaPlayerService.h

MediaPlayerService:: MediaPlayerService[f1] 

MediaPlayerService.cpp

MediaPlayerService::create

MediaPlayerService.cpp

MediaPlayerService::Client::Client

MediaPlayerService.cpp

MediaPlayerService::Client::setDataSource

MediaPlayerService.cpp

getPlayerType[f2] 

MediaPlayerService.cpp

MediaPlayerService::Client::createPlayer

MediaPlayerService.cpp

createPlayer

MediaPlayerService.cpp

          PVPlayer

PVPlayer.h

MidiFile

MidiFile.cpp

VorbisPlayer

VorbisPlayer.cpp

      AudioOutput::AudioOutput

MediaPlayerService.cpp

 

1.3 mp.prepare()

函數(shù)調(diào)用

文件

MediaPlayer:: prepare

MediaPlayer.Java

MediaPlayer:: prepare

MediaPlayer.Java

android_media_MediaPlayer_ prepare

android_media_MediaPlayer.cpp

MediaPlayer:: prepare

MediaPlayer.cpp

PVPlayer:: prepare

PVPlayer.h

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()

函數(shù)調(diào)用

文件

MediaPlayer:: start

MediaPlayer.Java

MediaPlayer:: start

MediaPlayer.Java

android_media_MediaPlayer_ start

android_media_MediaPlayer.cpp

MediaPlayer:: start

MediaPlayer.cpp

PVPlayer:: start

PVPlayer.h

MidiFile:: p start

MidiFile.cpp

VorbisPlayer:: start

VorbisPlayer.cpp

  AudioTrack::start

AudioTrack.cpp


 [f1]systemserver進(jìn)程創(chuàng)建,在文件system_init.cpp里的函數(shù)system_init()調(diào)用MediaPlayerService::instantiate創(chuàng)建

 [f2]返回3player

PV_PLAYER:播放mp3

SONIVOX_PLAYER:播放midi

VORBIS_PLAYER:播放ogg,


簡單說來,軌跡如下:

Java端發(fā)起調(diào)用,MediaPlayer會轉(zhuǎn)至MediaPlayerService,然后會調(diào)用相應(yīng)的解碼工具解碼后創(chuàng)建AudioTrack,所有待輸出的AudioTrack在AudioFlinger::AudioMixer里合成,然后通過AudioHAL(AudioHardwareInterface的實際實現(xiàn)者)傳至實際的硬件來實現(xiàn)播放

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多

    中日韩美一级特黄大片| 亚洲熟女国产熟女二区三区| 精品香蕉一区二区在线| 美国黑人一级黄色大片| 中文字幕不卡欧美在线| 亚洲精品成人福利在线| 99国产高清不卡视频| 91亚洲国产成人久久| 懂色一区二区三区四区| 天堂热东京热男人天堂| 日韩日韩日韩日韩在线| 亚洲乱码av中文一区二区三区| 国产传媒中文字幕东京热| 欧美大粗爽一区二区三区| 老司机激情五月天在线不卡| 在线九月婷婷丁香伊人| 伊人色综合久久伊人婷婷| 日韩免费av一区二区三区| 国产精品内射视频免费| 国产精品久久三级精品| 不卡视频免费一区二区三区| 国产精品视频一区二区秋霞| 老司机精品福利视频在线播放| 亚洲高清中文字幕一区二区三区| 青青操日老女人的穴穴| 微拍一区二区三区福利| 日本成人三级在线播放| 亚洲精品国产第一区二区多人| 日本国产欧美精品视频| 亚洲精选91福利在线观看 | 国内真实露脸偷拍视频| 国产中文字幕久久黄色片| 亚洲熟女一区二区三四区| 亚洲黄色在线观看免费高清| 日本特黄特色大片免费观看| 久久精品亚洲情色欧美| 日本不卡在线视频你懂的| 久久精品国产99精品亚洲| 日韩欧美好看的剧情片免费| 日本精品免费在线观看| 久草国产精品一区二区|