You are coupling the HTML markup with the view. What happens if we replace the video element with canvas + webgl to display video? I think the method play should be part of the view and the view decides how to resolve the action.