WEB开发网
开发学院手机开发Android 开发 Android 下的PVPlayer的实现 阅读

Android 下的PVPlayer的实现

 2010-09-10 01:08:00 来源:WEB开发网   
核心提示:sp p = createPlayer(playerType);if (p == NULL) return NO_INIT;if (!p->hardwareOutput()) {mAudioOutput = new AudioOutput();static_cast(p.get())->setAudioSi

sp p = createPlayer(playerType);

if (p == NULL) return NO_INIT;

if (!p->hardwareOutput()) {

mAudioOutput = new AudioOutput();

static_cast(p.get())->setAudioSink(mAudioOutput);

}

// now set data source

mStatus = p->setDataSource(fd, offset, length);

if (mStatus == NO_ERROR) mPlayer = p;

return mStatus;

}

3 、status_t MediaPlayerService::Client::setVideoSurface(const sp& surface)

{

LOGV("[%d] setVideoSurface(%p)", mConnId, surface.get());

sp p = getPlayer();

if (p == 0) return UNKNOWN_ERROR;

return p->setVideoSurface(surface);

}// 由此可见,其实框架把显示的功能并没有替你做下来,因为这个地方很多p->setVideoSurface(surface);返回值都是空的,这个函数只是给你一个接口,把上层的一个 sp给你,至于你在他上面画什么东西,是你的事情,如果你调用这个函数就有,不调用就没有,很明白简单。所以说,显示的工作还得自己来做。

4、5、 都是设置了源,但是在播放前的一些准备工作,一个是同步,一个是异步。

sp MediaPlayerService::decode(const char* url, uint32_t *pSampleRate, int* pNumChannels, int* pFormat)

{

LOGV("decode(%s)", url);

sp mem;

sp player;

// Protect our precious, precious DRMd ringtones by only allowing

// decoding of http, but not filesystem paths or content Uris.

// If the application wants to decode those, it should open a

// filedescriptor for them and use that.

if (url != NULL && strncmp(url, "http:// ", 7) != 0) {

LOGD("Can't decode %s by path, use filedescriptor instead", url);

上一页  1 2 3 4 5 6 7 8 9  下一页

Tags:Android PVPlayer 实现

编辑录入:coldstar [复制链接] [打 印]
赞助商链接