MCPcopy Create free account
hub / github.com/axmolengine/axmol / MediaPlayer

Method MediaPlayer

core/ui/UIMediaPlayer.cpp:870–1035  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

868}
869
870MediaPlayer::MediaPlayer()
871{
872 auto pvd = new PrivateVideoDescriptor{};
873 _videoContext = pvd;
874# if AX_VIDEOPLAYER_DEBUG_DRAW
875 _debugDrawNode = DrawNode::create();
876 addChild(_debugDrawNode);
877# endif
878
879 // Initialize mediaPlayer backend
880 pvd->_engine = _meFactory->createMediaEngine();
881 if (pvd->_engine)
882 {
883 /// create video render sprite
884 pvd->_vrender = new Sprite();
885 pvd->_vrender->init();
886 pvd->_vrender->setAutoUpdatePS(false);
887 this->addProtectedChild(pvd->_vrender);
888 /// setup media event callback
889 pvd->_engine->setCallbacks(
890 [this, pvd](MEMediaEventType event) {
891 switch (event)
892 {
893 case MEMediaEventType::Playing:
894 if (!isPlaying())
895 onPlayEvent((int)EventType::PLAYING);
896 break;
897
898 case MEMediaEventType::Paused:
899 onPlayEvent((int)EventType::PAUSED);
900 break;
901
902 case MEMediaEventType::Stopped:
903 onPlayEvent(pvd->_engine->isPlaybackEnded() ? (int)EventType::COMPLETED : (int)EventType::STOPPED);
904 break;
905
906 /* Raised by a media source when a presentation ends. This event signals that all streams in the
907 presentation are complete. The Media Session forwards this event to the application. */
908 // case MEEndOfPresentation:
909 // onPlayEvent((int)EventType::COMPLETED);
910 // break;
911
912 /* Raised by the Media Session when it has finished playing the last presentation in the playback queue.
913 * We send complete event at this case
914 */
915 // case MEMediaEventType::Stopped:
916 // onPlayEvent((int)EventType::COMPLETED);
917 // break;
918 case MEMediaEventType::Error:
919 onPlayEvent((int)EventType::ERROR);
920 break;
921 }
922 },
923 [this, pvd](const ax::MEVideoFrame& frame) {
924 auto pixelFormat = frame._vpd._PF;
925 auto bPixelDescChnaged = !frame._vpd.equals(pvd->_vpixelDesc);
926 if (bPixelDescChnaged)
927 {

Callers

nothing calls this directly

Calls 15

createFunction · 0.85
isPlayingFunction · 0.85
getInstanceFunction · 0.85
addProtectedChildMethod · 0.80
updateWithDataMethod · 0.80
getBackendTextureMethod · 0.80
createMediaEngineMethod · 0.45
initMethod · 0.45
setCallbacksMethod · 0.45
isPlaybackEndedMethod · 0.45
equalsMethod · 0.45
setAliasTexParametersMethod · 0.45

Tested by

no test coverage detected