Ch14 + 15 completed

setRetainInstance(true) causes the fragment to be returned when the
activity is destroyed and recreated via changing the orientation.

Normally, this would keep the MediaPlayer's audio track to keep playing
uninterrupted. In this case, however, with a video file, this method did
not work as the fragment view gets recreated which means we lose our
SurfaceView upon orientation change. Hence, we overcome this the old
fashioned way by onSaveInstanceState(..)

When the fragment is recreated, you would think you can just call play
on the MediaPlayer again. Wrong. If we call play as soon as the fragment
is created then it crashes since the Layout hasn't finished inflating.
To overcome this, we used a Handler to delay the call to play and viola!
Problem solved!

Added:
+ implementation for uninterrupted video while upon orientation change
+ fixed pause button
+ finished Ch.14 and Ch.15