/* * Copyright (C) 2013 yixia.com * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package io.vov.vitamio.demo; import android.app.Activity; import android.os.Bundle; import android.view.View; import android.widget.TextView; import android.widget.Toast; import io.vov.vitamio.MediaPlayer; import io.vov.vitamio.MediaPlayer.OnTimedTextListener; import io.vov.vitamio.Vitamio; import io.vov.vitamio.widget.VideoView; public class VideoViewSubtitle extends Activity { private String path = "http://vfx.mtime.cn/Video/2016/12/29/mp4/161229134943070513_480.mp4"; private String subtitle_path = ""; private VideoView mVideoView; private TextView mSubtitleView; private long mPosition = 0; private int mVideoLayout = 0; @Override public void onCreate(Bundle icicle) { super.onCreate(icicle); Vitamio.isInitialized(getApplicationContext()); setContentView(R.layout.subtitle2); mVideoView = (VideoView) findViewById(R.id.surface_view); mSubtitleView = (TextView) findViewById(R.id.subtitle_view); if (path == "") { // Tell the user to provide a media file URL/path. Toast.makeText(VideoViewSubtitle.this, "Please edit VideoViewSubtitle Activity, and set path" + " variable to your media file URL/path", Toast.LENGTH_LONG).show(); return; } else { /* * Alternatively,for streaming media you can use * mVideoView.setVideoURI(Uri.parse(URLstring)); */ mVideoView.setVideoPath(path); // mVideoView.setMediaController(new MediaController(this)); mVideoView.requestFocus(); mVideoView.setOnPreparedListener(new MediaPlayer.OnPreparedListener() { @Override public void onPrepared(MediaPlayer mediaPlayer) { // optional need Vitamio 4.0 mediaPlayer.setPlaybackSpeed(1.0f); mVideoView.addTimedTextSource(subtitle_path); mVideoView.setTimedTextShown(true); } }); mVideoView.setOnTimedTextListener(new OnTimedTextListener() { @Override public void onTimedText(String text) { mSubtitleView.setText(text); } @Override public void onTimedTextUpdate(byte[] pixels, int width, int height) { } }); } } @Override protected void onPause() { mPosition = mVideoView.getCurrentPosition(); mVideoView.stopPlayback(); super.onPause(); } @Override protected void onResume() { if (mPosition > 0) { mVideoView.seekTo(mPosition); mPosition = 0; } super.onResume(); mVideoView.start(); } public void changeLayout(View view) { mVideoLayout++; if (mVideoLayout == 4) { mVideoLayout = 0; } switch (mVideoLayout) { case 0: mVideoLayout = VideoView.VIDEO_LAYOUT_ORIGIN; view.setBackgroundResource(R.drawable.mediacontroller_sreen_size_100); break; case 1: mVideoLayout = VideoView.VIDEO_LAYOUT_SCALE; view.setBackgroundResource(R.drawable.mediacontroller_screen_fit); break; case 2: mVideoLayout = VideoView.VIDEO_LAYOUT_STRETCH; view.setBackgroundResource(R.drawable.mediacontroller_screen_size); break; case 3: mVideoLayout = VideoView.VIDEO_LAYOUT_ZOOM; view.setBackgroundResource(R.drawable.mediacontroller_sreen_size_crop); break; } mVideoView.setVideoLayout(mVideoLayout, 0); } }