2014-06-11 6 views

답변

0

AwesomePlayer 미디어 유형에 따라 다른 방식으로 미디어 재생을 재생, 일시 중지, 중지 및 다시 시작하는 것을 처리합니다.

오디오의 경우 AwesomePlayer는 오디오 콘텐츠의 래퍼로 사용되는 AudioPlayer 구성 요소를 인스턴스화하고 호출합니다. 예를 들어 오디오 만 재생하는 경우 AwesomePlayerAudioPlayer::start()을 호출하고 오디오 트랙이 끝나거나 사용자가 새 명령을 제출할 때까지 유휴 상태를 유지합니다. 재생 중에 AudioPlayer는 MediaSource/OMXCodec 객체를 사용하여 기본 OMX 하위 시스템과 통신합니다.

비디오의 경우 AwesomePlayer는 AwesomeRenderer의 비디오 렌더링 기능을 호출하는 동시에 MediaSource/OMXCodec 객체를 통해 OMX 서브 시스템과 직접 통신합니다 (비디오 재생의 경우 AudioPlayer와 같은 프록시가 없음).

당신은 here.

0

AwesomePlayer는 하나 링크 차례로 호출 .This는 IPC 서비스 MediaPlayerService 의해 트리거 될 다른 구성 요소 (소스/싱크/필터/OMX-IL 성분) 사이의 통신을 설정 응용 프로그램 계층에서 MediaPlayer로. Stagefright는 주로 MediaSource, MediaExtractor, Writers와 같은 주요 인터페이스를 가지고 있습니다.

이제 응용 프로그램 계층에서도 MediaCodec이 노출됩니다 (http://developer.android.com/reference/android/media/MediaCodec.html).

구성 요소 간의 흐름 및 연결 방법을 알고 싶다면 AOSP frameworks/av/cmds/stagefright /에서 제공되는 테스트 앱을 살펴보십시오.

http://androidxref.com/의 소스 코드를 찾아보십시오. 코드를 통해 배우게됩니다.

또한, 클래스 다이어그램의 경우 , 기사를 보면 http://freepine.blogspot.in/2010/01/overview-of-stagefrighter-player.html

http://quandarypeak.com/2013/08/androids-stagefright-media-player-architecture/

+0

입력 해 주셔서 감사합니다. 크게 도움이되었습니다. – user3728392