SlideShare a Scribd company logo
NHN	NEXT	Eunjoo	Im
Android

MediaPlayer
& VideoView
GDG	Korea		
November	Meetup
NHN	NEXT	Eunjoo	Im
android media player
android video play
NHN	NEXT	Eunjoo	Im
1. What are the difference between MediaPlayer and VideoView
for Android
2. How to play videos in android from assets folder or raw
folder?
3. Android: mediaplayer went away with unhandled events
4. Playing a video in VideoView in Android
5. Using VideoView for streaming or progressive-download video
6. Full screen videoview without stretching the video
7. Playing youtube video in Android app
NHN	NEXT	Eunjoo	Im
안드로이드
멀티미디어
Architecture
http://markmail.org/download.xqy?id=obl5o53uo3is5hoi&number=1
libaudio
Java	
Application
Java	
FrameWork
Native
Driver
Camera Media	Recoder Media	Player
android.hardware	
.Camera
android.media	
.MediaRecorder
android.media	
.MediaPlayer
android.view	
.Surface
mediarecorder
Camera
Camera	Service
mediaplayer
MediaPlayer	Service
OpenCore
StageFright	PlayerCamera	
Hardware
UI	lib
Surface	
Flinger
Audio	
Flinger
Alsa	lib
Audio	
(Alsa)
Main	
framebuffer
Video	
Plane
Hardware	Codec
V412	
Capture
Native
system
Service
Media
Server
Process
nu	
Player
Awesome	Player
NHN	NEXT	Eunjoo	Im
안드로이드
미디어 재생
▪ 오디오,	비디오	재생을	모
두	담당하는	기본	API	
▪ 파일과	스트림	지원	
▪ 볼륨과	ringer	mode(벨,	
진동	무음)	등	오디오	자
원과	출력을	담당	
▪ 다양한	자원에서	영상을	
불러올	수	있는	동영상	재
생	전담	위젯	
▪ UI를	제공하고	확대/축소
와	tint	기능	제공
MediaPlayer
AudioManager
VideoView
NHN	NEXT	Eunjoo	Im
안드로이드
미디어 재생
media sources Local

Media

resources
Internal
URIs
External
URLs
content://directory/words
content URI 표준 접두어
content authority =>
content provider 식별
path
with
NHN	NEXT	Eunjoo	Im
OpenCore
StageFright	Player nu	
Player
Awesome	Player
Media
Player
Media Playback
libaudio
Java	
Application
Java	
FrameWork
Native
Driver
Media	Player
android.media	
.MediaPlayer
android.view	
.Surface
mediaplayer
MediaPlayer	Service
UI	lib
Surface	
Flinger
Audio	
Flinger
Alsa	lib
Audio	
(Alsa)
Main	
framebuffer
Video	
Plane
Hardware	Codec
stream	
media
media	
file
video	
stream
audio	
stream
android.view	
source	URI	
ISurface	
audio	type
Media
Server
Process
ISurface
audio	type
http://markmail.org/download.xqy?id=obl5o53uo3is5hoi&number=1
NHN	NEXT	Eunjoo	Im
Media
Player
SurfaceView
▪ 뷰	위계질서	내에	그릴	수	
있는	표면을	제공	
▪ 백그라운드	스레드에서	
화면을	업데이트하여	
ANR을	방지	
▪ Surface	객체를	관리하는	
홀더	
▪ MediaPlayer에서	비디오
를	재생하려면	surface를	
지정해야함	
▪ SurfaceHolder	생성	후		
setDisplay(SurfaceHol
der	surfaceHolder)
NHN	NEXT	Eunjoo	Im
Media
Player
constructors
: with default constructor
public	MediaPlayer()	
+
+	
setDisplay(SurfaceHolder	surfaceHolder)	
+	
prepare()	or	prepareAsync()
NHN	NEXT	Eunjoo	Im
Media
Player
constructors
: factory method
prepare()	or	prepareAsync()
성공적으로 로드될 경우
자동으로 동기적인 prepare()가 불리기 때문에
대용량 미디어에는 비효율적
surfaceHolder를
지정하지 않으면
audio만 재생
NHN	NEXT	Eunjoo	Im
Media
Player
Sample code
: set up
MediaPlayer	mediaPlayer	=	new	MediaPlayer();	
mediaPlayer.setDataSource(path);	
mediaPlayer.setDisplay(surfaceHolder);	
mediaPlayer.prepare();	
//	mediaPlayer.prepareAsync();	
mediaPlayer.start();
MediaPlayer	mediaPlayer	
	=	MediaPlayer.create(context,	R.raw.file1);	
mediaPlayer.setDisplay(surfaceHolder);	
mediaPlayer.prepare();	
mediaPlayer.start();	
with default constructor
With create()
factory method
NHN	NEXT	Eunjoo	Im
Media
Player
Idle
Initialized
Prepared
Started
Playback

Completed
Preparing
End
Error
reset() release()
setDataSource()
OnErrorListener().
onError()
prepareAsync()
prepare()OnPrepareListener.
onPrepared()
prepareAsync()
stop()
stop()
Looping == false &&
onCompletion()
* from

OnCompletion

Listener
start()
* from beginning
seekTo()
seekTo()/pause()pause()
start()
Looping == true &&
playback completes
seekTo()/start()
stop()
prepare()
start()
seekTo()
stop()
PausedStopped stop()
state diagram
NHN	NEXT	Eunjoo	Im
Media
Player
callbacks
NHN	NEXT	Eunjoo	Im
Media
Player
Sample code
: Manifest
<uses-permission	android:name=	
"android.permission.INTERNET"	/>
<uses-permission	android:name=	
"android.permission.WAKE_LOCK"	/>
Internet
Permission
for network
streaming
Wake
Lock Permission
for wake-up
NHN	NEXT	Eunjoo	Im
Media
Player
Sample code
: prepare surface
<SurfaceView	android:id=“+id/surface”	
android:layout_width=“400dp”	
android:layout_height=“240dp”	/>
xml
Activity
public	class	MediaPlayerActivity	extends	Activity	implements	SurfaceHolder.Callback	{	
SurfaceView	surfaceView;	
Surfaceholder	surfaceHolder;	
MediaPlayer	mediaPlayer;	
@override	
public	void	onCreate(Bundle	savedInstanceState)	{	
//	
surfaceView	=	(SurfaceView)	findViewById(R.id.surface);	
surfaceHolder	=	surfaceView.getHolder();	
surfaceHolder.addCallback(this);	
//	
}
NHN	NEXT	Eunjoo	Im
Media
Player
Sample code
: MediaPlayer set up
Activity - Cont.
public	class	MediaPlayerActivity	extends	Activity	implements	SurfaceHolder.Callback	{	
//	
@override	
public	void	surfaceCreated(SurfaceHolder	holder)	{	
try	{	
mediaPlayer.setDataSource(	//	);	
mediaPlayer.setDisplay(holder);	
//	
}	catch	(Exception	e)	{	//	}	
}	
}
NHN	NEXT	Eunjoo	Im
Media
Player
Sample code
: controll
public	class	MediaPlayerActivity	extends	Activity	implements	SurfaceHolder.Callback	{	
//	
mediaPlayer.start();	
//	
mediaPlayer.stop();	
try	{	
mediaPlayer.prepare();	//	다음	영상	재생	준비	
}	catch	(Exception	e)	{	//	}	
//	
@Override	
public	void	onDestory()	{	
super.onDestroy();	
if	(mediaPlayer	!=	null)	{	
mediaPlayer.release();	
}	
}	
}
해당 button의 onClickListener에 구현
지원하지 않는 상태에서는
IllegalStateException throw
Android: mediaplayer went away with unhandled events
NHN	NEXT	Eunjoo	Im
Media
Player
Sample code
: full size
<SurfaceView	android:id=“+id/surface”	
android:layout_width=“match_parent”	
android:layout_height=“match_parent”	/>
xml
Activity
public	class	MediaPlayerActivity	extends	Activity	implements	SurfaceHolder.Callback	{	
//	
@Override	
public	void	surfaceCreated(SurfaceHolder	holder)	{	
//	
try	{		
//	
mediaPlayer.setOnVideoSizeChangedListener(sizeChangeListener);	
}	catch	(Exception	e)	{	e.printStackTrace();	}		
}	
//
Full screen videoview without stretching the video
NHN	NEXT	Eunjoo	Im
Media
Player
Sample code
: full size
Activity - Cont.
public	class	MediaPlayerActivity	extends	Activity	implements	SurfaceHolder.Callback	{
//	
MediaPlayer.OnPreparedListener	preparedListener	=		
new	MediaPlayer.OnPreparedListener()	{		
@Override		
public	void	onPrepared(MediaPlayer	mp)	{		
Point	size	=	new	Point();		
int	videoWidth	=	mediaPlayer.getVideoWidth();		
int	videoHeight	=	mediaPlayer.getVideoHeight();		
float	videoProportion	=	(float)	videoWidth	/	(float)	videoHeight;	
getWindowManager().getDefaultDisplay().getSize(size);	
int	screenWidth	=	size.x;	
int	screenHeight	=	size.y;	
float	screenProportion	=	(float)	screenWidth	/	(float)	screenHeight;	
android.view.ViewGroup.LayoutParams	layoutParams	=	
surfaceView.getLayoutParams();	
//	
}	
//	
}
NHN	NEXT	Eunjoo	Im
Media
Player
Sample code
: full size
Activity - Cont.
public	class	MediaPlayerActivity	extends	Activity	implements	SurfaceHolder.Callback	{
//	
MediaPlayer.OnPreparedListener	preparedListener	=		
new	MediaPlayer.OnPreparedListener()	{		
@Override		
public	void	onPrepared(MediaPlayer	mp)	{		
//	
if	(videoProportion	>	screenProportion)	{	
layoutParams.width	=	screenWidth;		
layoutParams.height	=	(int)	((float)	screenWidth	/	videoProportion);		
}	else	{		
layoutParams.width	=	(int)	(videoProportion	*	(float)	screenHeight);	
layoutParams.height	=	screenHeight;	
}		
surfaceView.setLayoutParams(layoutParams);	
}	
};	
}
NHN	NEXT	Eunjoo	Im
Video
View
introduction
▪ 다양한	자원에서	영상을	불러
올	수	있는	동영상	재생	전담	
위젯	
▪ UI를	제공하고	확대/축소와	
tint	기능	제공
NHN	NEXT	Eunjoo	Im
Video
View
MediaController
▪ MediaPlayer의	컨트롤
을	담은	뷰	
▪ Play/Pause,	Rewind,	
Fast	Forward

												+

progress	slider
NHN	NEXT	Eunjoo	Im
Video
View
set up
public	VideoView	(//)
+	
setVideoPath(path)	or	setVideoURI(uri)
NHN	NEXT	Eunjoo	Im
Video
View
Sample code
: set up
<VideoView	android:id=“@+id/videoView”	
android:layout_width=“400dp”	
android:layout_height=“240dp”	/>
xml
Activity
public	class	VideoViewActivity	extends	Activity	{	
@override	
public	void	onCreate(Bundle	savedInstanceState)	{	
//	
VideoView	videoView	=	(VideoView)findViewById(R.id.videoView);	
//	
videoView.setVideoPath(	//	);	
//	videoView.setVideoURL(url);	
//	
final	MediaController	mediaController	=	new	MediaController(this);	
videoView.setMediaController(mediaController);	
}	
} 예제:	김상형.	『안드로이드	프로그래밍	정복』.	서울:	한빛미디어,	2013.
NHN	NEXT	Eunjoo	Im
Video
View
Sample code
: controll
Activity - Cont.
public	class	PlayVideoActivity	extends	Activity	{	
@override	
public	void	onCreate(Bundle	savedInstanceState)	{	
//	
videoView.postDelayed(new	Runnable()	{	
public	void	run()	{	
mediaController.show(0);	
}	
},	100);	
}
예제:	김상형.	『안드로이드	프로그래밍	정복』.	서울:	한빛미디어,	2013.
NHN	NEXT	Eunjoo	Im
▪ http://developers.google.com/youtube/android/player/	
▪ 앱	등록으로	개발자	키	발급	필요	
▪ 프로젝트에	YouTube	Data	API	v3	서비스	추가	필요	
▪ 사용자의	기기에서	YouTube	앱	4.2.16+	실행	필요	
▪ YouTubePlayerFragment나	YouTubePlayerView를	View에	배치하
고	YouTubePlayer를	사용하여	View에서	동영상	재생을	제어	
▪ 재생	환경의	세밀한	조정	가능	
▪ YouTubeStandalonePlayer를	사용	
▪ 더	간편하고	전체	화면	모드	또는	라이트박스	모드	지원	
▪ 동영상	재생	관련	유연성과	제어	능력	감소
Play
YouTube
Video
YouTube API
클라이언트
라이브러리
Playing youtube video in Android app
NHN	NEXT	Eunjoo	Im
Examples
https://github.com/luvgaram/android_GDG_examples
https://goo.gl/J8sGKI
NHN	NEXT	Eunjoo	Im
참고

자료 http://developer.android.com/intl/ko/guide/topics/media/mediaplayer.html	
http://developer.android.com/intl/ko/reference/android/media/MediaPlayer.html	
Android	Developers
http://www.slideshare.net/jerrinsg/android-media-framework-overview
Android	media	framework	overview
http://www.netmite.com/android/mydroid/2.0/external/opencore/doc/mio_developers_guide.pdf
Media	I/O	developer’s	Guide	
OpenCORE	2.02,	rev.	1
http://markmail.org/download.xqy?id=obl5o53uo3is5hoi&number=1
Android	MultiMedia	Framwork	Overview	
Li	Li,	Solution	and	Service	Wind	River
http://developers.google.com/youtube/android/player/
YouTube	Android	Player	API
안드로이드	프로그래밍	정복	
김상형.	『안드로이드	프로그래밍	정복』.	서울:	한빛미디어,	2013.
NHN	NEXT	Eunjoo	Im
Thank	
You

More Related Content

What's hot

Running Android on the Raspberry Pi: Android Pie meets Raspberry Pi
Running Android on the Raspberry Pi: Android Pie meets Raspberry PiRunning Android on the Raspberry Pi: Android Pie meets Raspberry Pi
Running Android on the Raspberry Pi: Android Pie meets Raspberry Pi
Chris Simmonds
 
Developing and-benchmarking-native-linux-applications-on-android
Developing and-benchmarking-native-linux-applications-on-androidDeveloping and-benchmarking-native-linux-applications-on-android
Developing and-benchmarking-native-linux-applications-on-android
Elvis Jon Freddy Sitinjak
 
Android Multimedia Support
Android Multimedia SupportAndroid Multimedia Support
Android Multimedia Support
Jussi Pohjolainen
 
Linaro and Android Kernel
Linaro and Android KernelLinaro and Android Kernel
Linaro and Android Kernel
John Lee
 
Android crash debugging
Android crash debuggingAndroid crash debugging
Android crash debugging
Ashish Agrawal
 
Embedded Linux Multimedia
Embedded Linux MultimediaEmbedded Linux Multimedia
Embedded Linux Multimedia
Caglar Dursun
 
Program development tools
Program development toolsProgram development tools
Program development tools
Pantech ProLabs India Pvt Ltd
 
Software update for IoT Embedded World 2017
Software update for IoT Embedded World 2017Software update for IoT Embedded World 2017
Software update for IoT Embedded World 2017
Chris Simmonds
 
Advanced Video Production with FOSS
Advanced Video Production with FOSSAdvanced Video Production with FOSS
Advanced Video Production with FOSS
Kirk Kimmel
 
OWF12/PAUG Conf Days Alternative to google's android emulator, daniel fages, ...
OWF12/PAUG Conf Days Alternative to google's android emulator, daniel fages, ...OWF12/PAUG Conf Days Alternative to google's android emulator, daniel fages, ...
OWF12/PAUG Conf Days Alternative to google's android emulator, daniel fages, ...
Paris Open Source Summit
 
Android Application WebAPI Development Training
Android Application WebAPI Development TrainingAndroid Application WebAPI Development Training
Android Application WebAPI Development Training
OESF Education
 
Android Application Development Advanced
Android Application Development AdvancedAndroid Application Development Advanced
Android Application Development Advanced
OESF Education
 
Fundamentals of Using Open Source Code to Build Products
Fundamentals of Using Open Source Code to Build ProductsFundamentals of Using Open Source Code to Build Products
Fundamentals of Using Open Source Code to Build Products
Brian Warner
 
Qi -- Lightweight Boot Loader Applied in Mobile and Embedded Devices
Qi -- Lightweight Boot Loader Applied in Mobile and Embedded DevicesQi -- Lightweight Boot Loader Applied in Mobile and Embedded Devices
Qi -- Lightweight Boot Loader Applied in Mobile and Embedded Devices
National Cheng Kung University
 
android_project
android_projectandroid_project
android_project
Adit Ghosh
 
"Learning AOSP" - Android Hardware Abstraction Layer (HAL)
"Learning AOSP" - Android Hardware Abstraction Layer (HAL)"Learning AOSP" - Android Hardware Abstraction Layer (HAL)
"Learning AOSP" - Android Hardware Abstraction Layer (HAL)
Nanik Tolaram
 
Glossary
GlossaryGlossary
Glossary
wallinplanet
 
Distro Recipes 2013: What&rsquo;s new in gcc 4.8?
Distro Recipes 2013: What&rsquo;s new in gcc 4.8?Distro Recipes 2013: What&rsquo;s new in gcc 4.8?
Distro Recipes 2013: What&rsquo;s new in gcc 4.8?
Anne Nicolas
 
Open Source Licenses and Tools
Open Source Licenses and ToolsOpen Source Licenses and Tools
Open Source Licenses and Tools
g2ix
 
Enforce reproducibility: dependency management and build automation
Enforce reproducibility: dependency management and build automationEnforce reproducibility: dependency management and build automation
Enforce reproducibility: dependency management and build automation
Danilo Pianini
 

What's hot (20)

Running Android on the Raspberry Pi: Android Pie meets Raspberry Pi
Running Android on the Raspberry Pi: Android Pie meets Raspberry PiRunning Android on the Raspberry Pi: Android Pie meets Raspberry Pi
Running Android on the Raspberry Pi: Android Pie meets Raspberry Pi
 
Developing and-benchmarking-native-linux-applications-on-android
Developing and-benchmarking-native-linux-applications-on-androidDeveloping and-benchmarking-native-linux-applications-on-android
Developing and-benchmarking-native-linux-applications-on-android
 
Android Multimedia Support
Android Multimedia SupportAndroid Multimedia Support
Android Multimedia Support
 
Linaro and Android Kernel
Linaro and Android KernelLinaro and Android Kernel
Linaro and Android Kernel
 
Android crash debugging
Android crash debuggingAndroid crash debugging
Android crash debugging
 
Embedded Linux Multimedia
Embedded Linux MultimediaEmbedded Linux Multimedia
Embedded Linux Multimedia
 
Program development tools
Program development toolsProgram development tools
Program development tools
 
Software update for IoT Embedded World 2017
Software update for IoT Embedded World 2017Software update for IoT Embedded World 2017
Software update for IoT Embedded World 2017
 
Advanced Video Production with FOSS
Advanced Video Production with FOSSAdvanced Video Production with FOSS
Advanced Video Production with FOSS
 
OWF12/PAUG Conf Days Alternative to google's android emulator, daniel fages, ...
OWF12/PAUG Conf Days Alternative to google's android emulator, daniel fages, ...OWF12/PAUG Conf Days Alternative to google's android emulator, daniel fages, ...
OWF12/PAUG Conf Days Alternative to google's android emulator, daniel fages, ...
 
Android Application WebAPI Development Training
Android Application WebAPI Development TrainingAndroid Application WebAPI Development Training
Android Application WebAPI Development Training
 
Android Application Development Advanced
Android Application Development AdvancedAndroid Application Development Advanced
Android Application Development Advanced
 
Fundamentals of Using Open Source Code to Build Products
Fundamentals of Using Open Source Code to Build ProductsFundamentals of Using Open Source Code to Build Products
Fundamentals of Using Open Source Code to Build Products
 
Qi -- Lightweight Boot Loader Applied in Mobile and Embedded Devices
Qi -- Lightweight Boot Loader Applied in Mobile and Embedded DevicesQi -- Lightweight Boot Loader Applied in Mobile and Embedded Devices
Qi -- Lightweight Boot Loader Applied in Mobile and Embedded Devices
 
android_project
android_projectandroid_project
android_project
 
"Learning AOSP" - Android Hardware Abstraction Layer (HAL)
"Learning AOSP" - Android Hardware Abstraction Layer (HAL)"Learning AOSP" - Android Hardware Abstraction Layer (HAL)
"Learning AOSP" - Android Hardware Abstraction Layer (HAL)
 
Glossary
GlossaryGlossary
Glossary
 
Distro Recipes 2013: What&rsquo;s new in gcc 4.8?
Distro Recipes 2013: What&rsquo;s new in gcc 4.8?Distro Recipes 2013: What&rsquo;s new in gcc 4.8?
Distro Recipes 2013: What&rsquo;s new in gcc 4.8?
 
Open Source Licenses and Tools
Open Source Licenses and ToolsOpen Source Licenses and Tools
Open Source Licenses and Tools
 
Enforce reproducibility: dependency management and build automation
Enforce reproducibility: dependency management and build automationEnforce reproducibility: dependency management and build automation
Enforce reproducibility: dependency management and build automation
 

Similar to 안드로이드 MediaPlayer & VideoView

Android ppt
Android pptAndroid ppt
Android ppt
Nupur Minocha
 
My android
My androidMy android
My android
Prince Bhanwra
 
My android
My androidMy android
My android
Prince Bhanwra
 
Introduction to android applications stu
Introduction to android applications stuIntroduction to android applications stu
Introduction to android applications stu
cbashirmacalin
 
ANDROID MOBILE OPERATING SYSTEM
ANDROID MOBILE OPERATING SYSTEMANDROID MOBILE OPERATING SYSTEM
ANDROID MOBILE OPERATING SYSTEM
preeta sinha
 
Android app development ppt
Android app development pptAndroid app development ppt
Android app development ppt
saitej15
 
Rishiraj 's ppt
Rishiraj 's pptRishiraj 's ppt
Rishiraj 's ppt
rrk24
 
Android technology gk1
Android technology gk1Android technology gk1
Android technology gk1
gautam khillare
 
Android
AndroidAndroid
Android
mohith2398
 
Power Point Presentaton on Android Operating system
Power Point Presentaton on Android Operating systemPower Point Presentaton on Android Operating system
Power Point Presentaton on Android Operating system
Sukanta Biswas
 
Using the Presentation API and external screens on Android
Using the Presentation API and external screens on AndroidUsing the Presentation API and external screens on Android
Using the Presentation API and external screens on Android
Xavier Hallade
 
Introduccion a android developed usuario root
Introduccion a android developed usuario rootIntroduccion a android developed usuario root
Introduccion a android developed usuario root
yulianaguzmanrodrigu
 
What is Android
What is Android What is Android
What is Android
SanjayKumar330366
 
Software training report
Software training reportSoftware training report
Software training report
Natasha Bains
 
Aptech Apps
Aptech Apps Aptech Apps
Aptech Apps
RasikaShinde6
 
Android Things: Android for IoT
Android Things: Android for IoTAndroid Things: Android for IoT
Android Things: Android for IoT
Opersys inc.
 
Andriod apps
Andriod appsAndriod apps
Andriod apps
shakil2604
 
Android presantation
Android presantationAndroid presantation
Android presantation
UdayJethva
 
First Steps with Android - An Exciting Introduction
First Steps with Android - An Exciting IntroductionFirst Steps with Android - An Exciting Introduction
First Steps with Android - An Exciting Introduction
Cesar Augusto Nogueira
 
Sandeep_Resume
Sandeep_ResumeSandeep_Resume
Sandeep_Resume
Sandeep Hosangadi
 

Similar to 안드로이드 MediaPlayer & VideoView (20)

Android ppt
Android pptAndroid ppt
Android ppt
 
My android
My androidMy android
My android
 
My android
My androidMy android
My android
 
Introduction to android applications stu
Introduction to android applications stuIntroduction to android applications stu
Introduction to android applications stu
 
ANDROID MOBILE OPERATING SYSTEM
ANDROID MOBILE OPERATING SYSTEMANDROID MOBILE OPERATING SYSTEM
ANDROID MOBILE OPERATING SYSTEM
 
Android app development ppt
Android app development pptAndroid app development ppt
Android app development ppt
 
Rishiraj 's ppt
Rishiraj 's pptRishiraj 's ppt
Rishiraj 's ppt
 
Android technology gk1
Android technology gk1Android technology gk1
Android technology gk1
 
Android
AndroidAndroid
Android
 
Power Point Presentaton on Android Operating system
Power Point Presentaton on Android Operating systemPower Point Presentaton on Android Operating system
Power Point Presentaton on Android Operating system
 
Using the Presentation API and external screens on Android
Using the Presentation API and external screens on AndroidUsing the Presentation API and external screens on Android
Using the Presentation API and external screens on Android
 
Introduccion a android developed usuario root
Introduccion a android developed usuario rootIntroduccion a android developed usuario root
Introduccion a android developed usuario root
 
What is Android
What is Android What is Android
What is Android
 
Software training report
Software training reportSoftware training report
Software training report
 
Aptech Apps
Aptech Apps Aptech Apps
Aptech Apps
 
Android Things: Android for IoT
Android Things: Android for IoTAndroid Things: Android for IoT
Android Things: Android for IoT
 
Andriod apps
Andriod appsAndriod apps
Andriod apps
 
Android presantation
Android presantationAndroid presantation
Android presantation
 
First Steps with Android - An Exciting Introduction
First Steps with Android - An Exciting IntroductionFirst Steps with Android - An Exciting Introduction
First Steps with Android - An Exciting Introduction
 
Sandeep_Resume
Sandeep_ResumeSandeep_Resume
Sandeep_Resume
 

More from Eunjoo Im

Swift3 generic
Swift3 genericSwift3 generic
Swift3 generic
Eunjoo Im
 
Swift3 typecasting nested_type
Swift3 typecasting nested_typeSwift3 typecasting nested_type
Swift3 typecasting nested_type
Eunjoo Im
 
Swift3 subscript inheritance initialization
Swift3 subscript inheritance initializationSwift3 subscript inheritance initialization
Swift3 subscript inheritance initialization
Eunjoo Im
 
Av foundation record
Av foundation recordAv foundation record
Av foundation record
Eunjoo Im
 
Realm.io for iOS
Realm.io for iOSRealm.io for iOS
Realm.io for iOS
Eunjoo Im
 
iOS Auto Layout
iOS Auto LayoutiOS Auto Layout
iOS Auto Layout
Eunjoo Im
 

More from Eunjoo Im (6)

Swift3 generic
Swift3 genericSwift3 generic
Swift3 generic
 
Swift3 typecasting nested_type
Swift3 typecasting nested_typeSwift3 typecasting nested_type
Swift3 typecasting nested_type
 
Swift3 subscript inheritance initialization
Swift3 subscript inheritance initializationSwift3 subscript inheritance initialization
Swift3 subscript inheritance initialization
 
Av foundation record
Av foundation recordAv foundation record
Av foundation record
 
Realm.io for iOS
Realm.io for iOSRealm.io for iOS
Realm.io for iOS
 
iOS Auto Layout
iOS Auto LayoutiOS Auto Layout
iOS Auto Layout
 

Recently uploaded

Dandelion Hashtable: beyond billion requests per second on a commodity server
Dandelion Hashtable: beyond billion requests per second on a commodity serverDandelion Hashtable: beyond billion requests per second on a commodity server
Dandelion Hashtable: beyond billion requests per second on a commodity server
Antonios Katsarakis
 
GraphRAG for LifeSciences Hands-On with the Clinical Knowledge Graph
GraphRAG for LifeSciences Hands-On with the Clinical Knowledge GraphGraphRAG for LifeSciences Hands-On with the Clinical Knowledge Graph
GraphRAG for LifeSciences Hands-On with the Clinical Knowledge Graph
Neo4j
 
Taking AI to the Next Level in Manufacturing.pdf
Taking AI to the Next Level in Manufacturing.pdfTaking AI to the Next Level in Manufacturing.pdf
Taking AI to the Next Level in Manufacturing.pdf
ssuserfac0301
 
Skybuffer SAM4U tool for SAP license adoption
Skybuffer SAM4U tool for SAP license adoptionSkybuffer SAM4U tool for SAP license adoption
Skybuffer SAM4U tool for SAP license adoption
Tatiana Kojar
 
"Choosing proper type of scaling", Olena Syrota
"Choosing proper type of scaling", Olena Syrota"Choosing proper type of scaling", Olena Syrota
"Choosing proper type of scaling", Olena Syrota
Fwdays
 
Essentials of Automations: Exploring Attributes & Automation Parameters
Essentials of Automations: Exploring Attributes & Automation ParametersEssentials of Automations: Exploring Attributes & Automation Parameters
Essentials of Automations: Exploring Attributes & Automation Parameters
Safe Software
 
5th LF Energy Power Grid Model Meet-up Slides
5th LF Energy Power Grid Model Meet-up Slides5th LF Energy Power Grid Model Meet-up Slides
5th LF Energy Power Grid Model Meet-up Slides
DanBrown980551
 
Overcoming the PLG Trap: Lessons from Canva's Head of Sales & Head of EMEA Da...
Overcoming the PLG Trap: Lessons from Canva's Head of Sales & Head of EMEA Da...Overcoming the PLG Trap: Lessons from Canva's Head of Sales & Head of EMEA Da...
Overcoming the PLG Trap: Lessons from Canva's Head of Sales & Head of EMEA Da...
saastr
 
Energy Efficient Video Encoding for Cloud and Edge Computing Instances
Energy Efficient Video Encoding for Cloud and Edge Computing InstancesEnergy Efficient Video Encoding for Cloud and Edge Computing Instances
Energy Efficient Video Encoding for Cloud and Edge Computing Instances
Alpen-Adria-Universität
 
Your One-Stop Shop for Python Success: Top 10 US Python Development Providers
Your One-Stop Shop for Python Success: Top 10 US Python Development ProvidersYour One-Stop Shop for Python Success: Top 10 US Python Development Providers
Your One-Stop Shop for Python Success: Top 10 US Python Development Providers
akankshawande
 
zkStudyClub - LatticeFold: A Lattice-based Folding Scheme and its Application...
zkStudyClub - LatticeFold: A Lattice-based Folding Scheme and its Application...zkStudyClub - LatticeFold: A Lattice-based Folding Scheme and its Application...
zkStudyClub - LatticeFold: A Lattice-based Folding Scheme and its Application...
Alex Pruden
 
Generating privacy-protected synthetic data using Secludy and Milvus
Generating privacy-protected synthetic data using Secludy and MilvusGenerating privacy-protected synthetic data using Secludy and Milvus
Generating privacy-protected synthetic data using Secludy and Milvus
Zilliz
 
Main news related to the CCS TSI 2023 (2023/1695)
Main news related to the CCS TSI 2023 (2023/1695)Main news related to the CCS TSI 2023 (2023/1695)
Main news related to the CCS TSI 2023 (2023/1695)
Jakub Marek
 
Harnessing the Power of NLP and Knowledge Graphs for Opioid Research
Harnessing the Power of NLP and Knowledge Graphs for Opioid ResearchHarnessing the Power of NLP and Knowledge Graphs for Opioid Research
Harnessing the Power of NLP and Knowledge Graphs for Opioid Research
Neo4j
 
Apps Break Data
Apps Break DataApps Break Data
Apps Break Data
Ivo Velitchkov
 
“Temporal Event Neural Networks: A More Efficient Alternative to the Transfor...
“Temporal Event Neural Networks: A More Efficient Alternative to the Transfor...“Temporal Event Neural Networks: A More Efficient Alternative to the Transfor...
“Temporal Event Neural Networks: A More Efficient Alternative to the Transfor...
Edge AI and Vision Alliance
 
Programming Foundation Models with DSPy - Meetup Slides
Programming Foundation Models with DSPy - Meetup SlidesProgramming Foundation Models with DSPy - Meetup Slides
Programming Foundation Models with DSPy - Meetup Slides
Zilliz
 
Fueling AI with Great Data with Airbyte Webinar
Fueling AI with Great Data with Airbyte WebinarFueling AI with Great Data with Airbyte Webinar
Fueling AI with Great Data with Airbyte Webinar
Zilliz
 
JavaLand 2024: Application Development Green Masterplan
JavaLand 2024: Application Development Green MasterplanJavaLand 2024: Application Development Green Masterplan
JavaLand 2024: Application Development Green Masterplan
Miro Wengner
 
[OReilly Superstream] Occupy the Space: A grassroots guide to engineering (an...
[OReilly Superstream] Occupy the Space: A grassroots guide to engineering (an...[OReilly Superstream] Occupy the Space: A grassroots guide to engineering (an...
[OReilly Superstream] Occupy the Space: A grassroots guide to engineering (an...
Jason Yip
 

Recently uploaded (20)

Dandelion Hashtable: beyond billion requests per second on a commodity server
Dandelion Hashtable: beyond billion requests per second on a commodity serverDandelion Hashtable: beyond billion requests per second on a commodity server
Dandelion Hashtable: beyond billion requests per second on a commodity server
 
GraphRAG for LifeSciences Hands-On with the Clinical Knowledge Graph
GraphRAG for LifeSciences Hands-On with the Clinical Knowledge GraphGraphRAG for LifeSciences Hands-On with the Clinical Knowledge Graph
GraphRAG for LifeSciences Hands-On with the Clinical Knowledge Graph
 
Taking AI to the Next Level in Manufacturing.pdf
Taking AI to the Next Level in Manufacturing.pdfTaking AI to the Next Level in Manufacturing.pdf
Taking AI to the Next Level in Manufacturing.pdf
 
Skybuffer SAM4U tool for SAP license adoption
Skybuffer SAM4U tool for SAP license adoptionSkybuffer SAM4U tool for SAP license adoption
Skybuffer SAM4U tool for SAP license adoption
 
"Choosing proper type of scaling", Olena Syrota
"Choosing proper type of scaling", Olena Syrota"Choosing proper type of scaling", Olena Syrota
"Choosing proper type of scaling", Olena Syrota
 
Essentials of Automations: Exploring Attributes & Automation Parameters
Essentials of Automations: Exploring Attributes & Automation ParametersEssentials of Automations: Exploring Attributes & Automation Parameters
Essentials of Automations: Exploring Attributes & Automation Parameters
 
5th LF Energy Power Grid Model Meet-up Slides
5th LF Energy Power Grid Model Meet-up Slides5th LF Energy Power Grid Model Meet-up Slides
5th LF Energy Power Grid Model Meet-up Slides
 
Overcoming the PLG Trap: Lessons from Canva's Head of Sales & Head of EMEA Da...
Overcoming the PLG Trap: Lessons from Canva's Head of Sales & Head of EMEA Da...Overcoming the PLG Trap: Lessons from Canva's Head of Sales & Head of EMEA Da...
Overcoming the PLG Trap: Lessons from Canva's Head of Sales & Head of EMEA Da...
 
Energy Efficient Video Encoding for Cloud and Edge Computing Instances
Energy Efficient Video Encoding for Cloud and Edge Computing InstancesEnergy Efficient Video Encoding for Cloud and Edge Computing Instances
Energy Efficient Video Encoding for Cloud and Edge Computing Instances
 
Your One-Stop Shop for Python Success: Top 10 US Python Development Providers
Your One-Stop Shop for Python Success: Top 10 US Python Development ProvidersYour One-Stop Shop for Python Success: Top 10 US Python Development Providers
Your One-Stop Shop for Python Success: Top 10 US Python Development Providers
 
zkStudyClub - LatticeFold: A Lattice-based Folding Scheme and its Application...
zkStudyClub - LatticeFold: A Lattice-based Folding Scheme and its Application...zkStudyClub - LatticeFold: A Lattice-based Folding Scheme and its Application...
zkStudyClub - LatticeFold: A Lattice-based Folding Scheme and its Application...
 
Generating privacy-protected synthetic data using Secludy and Milvus
Generating privacy-protected synthetic data using Secludy and MilvusGenerating privacy-protected synthetic data using Secludy and Milvus
Generating privacy-protected synthetic data using Secludy and Milvus
 
Main news related to the CCS TSI 2023 (2023/1695)
Main news related to the CCS TSI 2023 (2023/1695)Main news related to the CCS TSI 2023 (2023/1695)
Main news related to the CCS TSI 2023 (2023/1695)
 
Harnessing the Power of NLP and Knowledge Graphs for Opioid Research
Harnessing the Power of NLP and Knowledge Graphs for Opioid ResearchHarnessing the Power of NLP and Knowledge Graphs for Opioid Research
Harnessing the Power of NLP and Knowledge Graphs for Opioid Research
 
Apps Break Data
Apps Break DataApps Break Data
Apps Break Data
 
“Temporal Event Neural Networks: A More Efficient Alternative to the Transfor...
“Temporal Event Neural Networks: A More Efficient Alternative to the Transfor...“Temporal Event Neural Networks: A More Efficient Alternative to the Transfor...
“Temporal Event Neural Networks: A More Efficient Alternative to the Transfor...
 
Programming Foundation Models with DSPy - Meetup Slides
Programming Foundation Models with DSPy - Meetup SlidesProgramming Foundation Models with DSPy - Meetup Slides
Programming Foundation Models with DSPy - Meetup Slides
 
Fueling AI with Great Data with Airbyte Webinar
Fueling AI with Great Data with Airbyte WebinarFueling AI with Great Data with Airbyte Webinar
Fueling AI with Great Data with Airbyte Webinar
 
JavaLand 2024: Application Development Green Masterplan
JavaLand 2024: Application Development Green MasterplanJavaLand 2024: Application Development Green Masterplan
JavaLand 2024: Application Development Green Masterplan
 
[OReilly Superstream] Occupy the Space: A grassroots guide to engineering (an...
[OReilly Superstream] Occupy the Space: A grassroots guide to engineering (an...[OReilly Superstream] Occupy the Space: A grassroots guide to engineering (an...
[OReilly Superstream] Occupy the Space: A grassroots guide to engineering (an...
 

안드로이드 MediaPlayer & VideoView