SlideShare a Scribd company logo
1 of 29
Download to read offline
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 PiChris 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-androidElvis Jon Freddy Sitinjak
 
Linaro and Android Kernel
Linaro and Android KernelLinaro and Android Kernel
Linaro and Android KernelJohn Lee
 
Android crash debugging
Android crash debuggingAndroid crash debugging
Android crash debuggingAshish Agrawal
 
Embedded Linux Multimedia
Embedded Linux MultimediaEmbedded Linux Multimedia
Embedded Linux MultimediaCaglar Dursun
 
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 2017Chris Simmonds
 
Advanced Video Production with FOSS
Advanced Video Production with FOSSAdvanced Video Production with FOSS
Advanced Video Production with FOSSKirk 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 TrainingOESF Education
 
Android Application Development Advanced
Android Application Development AdvancedAndroid Application Development Advanced
Android Application Development AdvancedOESF 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 ProductsBrian 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 DevicesNational Cheng Kung University
 
android_project
android_projectandroid_project
android_projectAdit 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
 
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 Toolsg2ix
 
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 automationDanilo 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

Introduction to android applications stu
Introduction to android applications stuIntroduction to android applications stu
Introduction to android applications stucbashirmacalin
 
ANDROID MOBILE OPERATING SYSTEM
ANDROID MOBILE OPERATING SYSTEMANDROID MOBILE OPERATING SYSTEM
ANDROID MOBILE OPERATING SYSTEMpreeta sinha
 
Android app development ppt
Android app development pptAndroid app development ppt
Android app development pptsaitej15
 
Rishiraj 's ppt
Rishiraj 's pptRishiraj 's ppt
Rishiraj 's pptrrk24
 
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 systemSukanta 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 AndroidXavier Hallade
 
Software training report
Software training reportSoftware training report
Software training reportNatasha Bains
 
Android Things: Android for IoT
Android Things: Android for IoTAndroid Things: Android for IoT
Android Things: Android for IoTOpersys inc.
 
Android presantation
Android presantationAndroid presantation
Android presantationUdayJethva
 
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 IntroductionCesar Augusto Nogueira
 
Android introduction&hello world
Android introduction&hello worldAndroid introduction&hello world
Android introduction&hello world葵慶 李
 

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
 
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
 
Android introduction&hello world
Android introduction&hello worldAndroid introduction&hello world
Android introduction&hello world
 

More from Eunjoo Im

Swift3 generic
Swift3 genericSwift3 generic
Swift3 genericEunjoo Im
 
Swift3 typecasting nested_type
Swift3 typecasting nested_typeSwift3 typecasting nested_type
Swift3 typecasting nested_typeEunjoo Im
 
Swift3 subscript inheritance initialization
Swift3 subscript inheritance initializationSwift3 subscript inheritance initialization
Swift3 subscript inheritance initializationEunjoo Im
 
Av foundation record
Av foundation recordAv foundation record
Av foundation recordEunjoo Im
 
Realm.io for iOS
Realm.io for iOSRealm.io for iOS
Realm.io for iOSEunjoo Im
 
iOS Auto Layout
iOS Auto LayoutiOS Auto Layout
iOS Auto LayoutEunjoo 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

Design pattern talk by Kaya Weers - 2024 (v2)
Design pattern talk by Kaya Weers - 2024 (v2)Design pattern talk by Kaya Weers - 2024 (v2)
Design pattern talk by Kaya Weers - 2024 (v2)Kaya Weers
 
All These Sophisticated Attacks, Can We Really Detect Them - PDF
All These Sophisticated Attacks, Can We Really Detect Them - PDFAll These Sophisticated Attacks, Can We Really Detect Them - PDF
All These Sophisticated Attacks, Can We Really Detect Them - PDFMichael Gough
 
Connecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfConnecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfNeo4j
 
Tampa BSides - The No BS SOC (slides from April 6, 2024 talk)
Tampa BSides - The No BS SOC (slides from April 6, 2024 talk)Tampa BSides - The No BS SOC (slides from April 6, 2024 talk)
Tampa BSides - The No BS SOC (slides from April 6, 2024 talk)Mark Simos
 
Kuma Meshes Part I - The basics - A tutorial
Kuma Meshes Part I - The basics - A tutorialKuma Meshes Part I - The basics - A tutorial
Kuma Meshes Part I - The basics - A tutorialJoão Esperancinha
 
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Alkin Tezuysal
 
2024 April Patch Tuesday
2024 April Patch Tuesday2024 April Patch Tuesday
2024 April Patch TuesdayIvanti
 
Abdul Kader Baba- Managing Cybersecurity Risks and Compliance Requirements i...
Abdul Kader Baba- Managing Cybersecurity Risks  and Compliance Requirements i...Abdul Kader Baba- Managing Cybersecurity Risks  and Compliance Requirements i...
Abdul Kader Baba- Managing Cybersecurity Risks and Compliance Requirements i...itnewsafrica
 
Generative AI - Gitex v1Generative AI - Gitex v1.pptx
Generative AI - Gitex v1Generative AI - Gitex v1.pptxGenerative AI - Gitex v1Generative AI - Gitex v1.pptx
Generative AI - Gitex v1Generative AI - Gitex v1.pptxfnnc6jmgwh
 
A Glance At The Java Performance Toolbox
A Glance At The Java Performance ToolboxA Glance At The Java Performance Toolbox
A Glance At The Java Performance ToolboxAna-Maria Mihalceanu
 
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24Mark Goldstein
 
React JS; all concepts. Contains React Features, JSX, functional & Class comp...
React JS; all concepts. Contains React Features, JSX, functional & Class comp...React JS; all concepts. Contains React Features, JSX, functional & Class comp...
React JS; all concepts. Contains React Features, JSX, functional & Class comp...Karmanjay Verma
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersNicole Novielli
 
Email Marketing Automation for Bonterra Impact Management (fka Social Solutio...
Email Marketing Automation for Bonterra Impact Management (fka Social Solutio...Email Marketing Automation for Bonterra Impact Management (fka Social Solutio...
Email Marketing Automation for Bonterra Impact Management (fka Social Solutio...Jeffrey Haguewood
 
Emixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native developmentEmixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native developmentPim van der Noll
 
Microsoft 365 Copilot: How to boost your productivity with AI – Part two: Dat...
Microsoft 365 Copilot: How to boost your productivity with AI – Part two: Dat...Microsoft 365 Copilot: How to boost your productivity with AI – Part two: Dat...
Microsoft 365 Copilot: How to boost your productivity with AI – Part two: Dat...Nikki Chapple
 
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotes
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotesMuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotes
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotesManik S Magar
 
Potential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsPotential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsRavi Sanghani
 
JET Technology Labs White Paper for Virtualized Security and Encryption Techn...
JET Technology Labs White Paper for Virtualized Security and Encryption Techn...JET Technology Labs White Paper for Virtualized Security and Encryption Techn...
JET Technology Labs White Paper for Virtualized Security and Encryption Techn...amber724300
 
React Native vs Ionic - The Best Mobile App Framework
React Native vs Ionic - The Best Mobile App FrameworkReact Native vs Ionic - The Best Mobile App Framework
React Native vs Ionic - The Best Mobile App FrameworkPixlogix Infotech
 

Recently uploaded (20)

Design pattern talk by Kaya Weers - 2024 (v2)
Design pattern talk by Kaya Weers - 2024 (v2)Design pattern talk by Kaya Weers - 2024 (v2)
Design pattern talk by Kaya Weers - 2024 (v2)
 
All These Sophisticated Attacks, Can We Really Detect Them - PDF
All These Sophisticated Attacks, Can We Really Detect Them - PDFAll These Sophisticated Attacks, Can We Really Detect Them - PDF
All These Sophisticated Attacks, Can We Really Detect Them - PDF
 
Connecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfConnecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdf
 
Tampa BSides - The No BS SOC (slides from April 6, 2024 talk)
Tampa BSides - The No BS SOC (slides from April 6, 2024 talk)Tampa BSides - The No BS SOC (slides from April 6, 2024 talk)
Tampa BSides - The No BS SOC (slides from April 6, 2024 talk)
 
Kuma Meshes Part I - The basics - A tutorial
Kuma Meshes Part I - The basics - A tutorialKuma Meshes Part I - The basics - A tutorial
Kuma Meshes Part I - The basics - A tutorial
 
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
 
2024 April Patch Tuesday
2024 April Patch Tuesday2024 April Patch Tuesday
2024 April Patch Tuesday
 
Abdul Kader Baba- Managing Cybersecurity Risks and Compliance Requirements i...
Abdul Kader Baba- Managing Cybersecurity Risks  and Compliance Requirements i...Abdul Kader Baba- Managing Cybersecurity Risks  and Compliance Requirements i...
Abdul Kader Baba- Managing Cybersecurity Risks and Compliance Requirements i...
 
Generative AI - Gitex v1Generative AI - Gitex v1.pptx
Generative AI - Gitex v1Generative AI - Gitex v1.pptxGenerative AI - Gitex v1Generative AI - Gitex v1.pptx
Generative AI - Gitex v1Generative AI - Gitex v1.pptx
 
A Glance At The Java Performance Toolbox
A Glance At The Java Performance ToolboxA Glance At The Java Performance Toolbox
A Glance At The Java Performance Toolbox
 
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
 
React JS; all concepts. Contains React Features, JSX, functional & Class comp...
React JS; all concepts. Contains React Features, JSX, functional & Class comp...React JS; all concepts. Contains React Features, JSX, functional & Class comp...
React JS; all concepts. Contains React Features, JSX, functional & Class comp...
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software Developers
 
Email Marketing Automation for Bonterra Impact Management (fka Social Solutio...
Email Marketing Automation for Bonterra Impact Management (fka Social Solutio...Email Marketing Automation for Bonterra Impact Management (fka Social Solutio...
Email Marketing Automation for Bonterra Impact Management (fka Social Solutio...
 
Emixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native developmentEmixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native development
 
Microsoft 365 Copilot: How to boost your productivity with AI – Part two: Dat...
Microsoft 365 Copilot: How to boost your productivity with AI – Part two: Dat...Microsoft 365 Copilot: How to boost your productivity with AI – Part two: Dat...
Microsoft 365 Copilot: How to boost your productivity with AI – Part two: Dat...
 
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotes
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotesMuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotes
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotes
 
Potential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsPotential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and Insights
 
JET Technology Labs White Paper for Virtualized Security and Encryption Techn...
JET Technology Labs White Paper for Virtualized Security and Encryption Techn...JET Technology Labs White Paper for Virtualized Security and Encryption Techn...
JET Technology Labs White Paper for Virtualized Security and Encryption Techn...
 
React Native vs Ionic - The Best Mobile App Framework
React Native vs Ionic - The Best Mobile App FrameworkReact Native vs Ionic - The Best Mobile App Framework
React Native vs Ionic - The Best Mobile App Framework
 

안드로이드 MediaPlayer & VideoView