上一页 1 ··· 25 26 27 28 29 30 31 32 33 ··· 52 下一页
摘要: 之前我们看过get position,今天来看看set position。*****************************************源码************************************************* //Test case 3: setPlaybackHeadPosition() on paused track @LargeTest public void testSetPlaybackHeadPositionPaused() throws Exception { // constants for te... 阅读全文
posted @ 2011-10-19 17:33 andriod2012 阅读(625) 评论(0) 推荐(0) 编辑
摘要: 今天来看看playback rate相关的接口。包括set和get。*****************************************源码************************************************* //Test case 6: setPlaybackRate() accepts values twice the output sample rate @LargeTest public void testSetPlaybackRateTwiceOutputSR() throws Exception { // ... 阅读全文
posted @ 2011-10-19 16:58 andriod2012 阅读(1259) 评论(0) 推荐(0) 编辑
摘要: 下面来看看音量设置相关的接口。*****************************************源码************************************************* //Test case 1: setStereoVolume() with max volume returns SUCCESS @LargeTest public void testSetStereoVolumeMax() throws Exception { // constants for test final String TE... 阅读全文
posted @ 2011-10-19 15:50 andriod2012 阅读(796) 评论(0) 推荐(0) 编辑
摘要: play, stop, flush这几个函数,今天来看看pause函数。*****************************************源码************************************************* //Test case 4: getPlaybackHeadPosition() is > 0 after play(); pause(); @LargeTest public void testPlaybackHeadPositionAfterPause() throws Exception { // co... 阅读全文
posted @ 2011-10-19 15:03 andriod2012 阅读(348) 评论(0) 推荐(0) 编辑
摘要: 上次看到的testPlaybackHeadPositionIncrease函数中,先play了一会,然后获取position。今天看个复杂点的,先play,然后stop,之后在flush,此时再获取position会是什么情况呢?*****************************************源码************************************************* //Test case 3: getPlaybackHeadPosition() is 0 after flush(); @LargeTest public void... 阅读全文
posted @ 2011-10-19 14:22 andriod2012 阅读(561) 评论(0) 推荐(0) 编辑
摘要: 继续啃AudioTrack的测试代码。*****************************************源码*************************************************//Test case 2: getPlaybackHeadPosition() increases after play() @LargeTest public void testPlaybackHeadPositionIncrease() throws Exception { // constants for test final ... 阅读全文
posted @ 2011-10-18 22:35 andriod2012 阅读(938) 评论(0) 推荐(0) 编辑
摘要: 打算以测试代码中所使用的接口为点,以接口间调用关系为线,逐步撕开Android中Audio的面纱。*****************************************源码************************************************* public void testPlaybackHeadPositionAfterInit() throws Exception { // constants for test final String TEST_NAME = "testPlaybackHeadPositionAf... 阅读全文
posted @ 2011-10-17 21:21 andriod2012 阅读(745) 评论(0) 推荐(0) 编辑
摘要: 前几天在看stream type的时候,调用函数AudioSystem::getOutput的地方并没有继续往下看。今天深入看看。*****************************************源码*************************************************status_t AudioTrack::set( int streamType, uint32_t sampleRate, int format, int channels, int frameCount, ... 阅读全文
posted @ 2011-10-14 14:02 andriod2012 阅读(862) 评论(0) 推荐(0) 编辑
摘要: 在看音频数据是怎么写的时候,在MixerThread的threadloop函数中,有以下代码完成了往硬件写数据:int bytesWritten = (int)mOutput->write(mMixBuffer, mixBufferSize);mOutput来历:函数AudioFlinger::openOutput中创建了一个MixerThread对象,并将前面调用mAudioHardware->openOutputStream得到的output作为参数传入。MixerThread继承自PlaybackThread,在PlaybackThread的构造函数中将传入的output赋值 阅读全文
posted @ 2011-10-13 22:18 andriod2012 阅读(881) 评论(0) 推荐(0) 编辑
摘要: 在看AudioTrack的write函数的时候,了解到,音频数据最终都写到了audio_track_cblk_t的结构体中。这个结构体是在AudioFlinger中创建的。AudioFlinger是如何来使用这些数据的呢?今天就来学习学习。我们写数据的时候,调用了audio_track_cblk_t::framesAvailable_l函数,来判断是否有可用的空间,以供写用。类audio_track_cblk_t中还有另外一个函数framesReady,看名字,应该是告诉我们已经准备好了多少东东。看样子,AudioFlinger在使用音频数据的时候,应该是先调用了framesReady函数,来 阅读全文
posted @ 2011-10-12 20:59 andriod2012 阅读(957) 评论(0) 推荐(0) 编辑
上一页 1 ··· 25 26 27 28 29 30 31 32 33 ··· 52 下一页