可以将文章内容翻译成中文,广告屏蔽插件可能会导致该功能失效(如失效,请关闭广告屏蔽插件后再试):
问题:
I've looked for existing potential solutions with other formats
and those still responds with mentioned error.
Finally, recorded the video with the same device and used it as a resource for this app and it still doesn't work.
Devices: SGS2
, lenovo a820
Video type: MPEG-4 video (video/mp4)
videoView = (VideoView)findViewById(R.id.videoView); videoView.setVideoPath("android.resource://raw/sample.mp4"); videoView.start();
回答1:
just see my below code it works...problem in pathe declaration..
String uriPath = "android.resource://"+getPackageName()+"/"+R.raw.aha_hands_only_cpr_english; Uri uri = Uri.parse(uriPath); mVideoView.setVideoURI(uri);
Thats it...
回答2:
I tried everything mentioned before but it turns out that internet permission is needed to play a mp4 file.
<uses-permission android:name="android.permission.INTERNET" />
回答3:
For Lenovo a820 ,below is need :
- MP4/WMV/H.264/H.263 player - MP3/WAV/WMA/eAAC+ player
make sure that ur video fits in above codec format.
回答4:
try following code..
videoView = (VideoView)this.findViewById(R.id.videoView); String path = "android.resource://" + getPackageName() + "/" + R.raw.video_file; MediaController mc = new MediaController(this); videoView.setMediaController(mc); videoView.start();
回答5:
public class videoplayer extends Activity { private static final String Videos_URL = "*your URI*"; private VideoView myVideoView; private int position = 0; private ProgressDialog progressDialog; private MediaController mediaControls; @Override protected void onCreate(final Bundle savedInstanceState) { super.onCreate(savedInstanceState); // Get the layout from video_main.xml setContentView(R.layout.activity_main); if (mediaControls == null) { mediaControls = new MediaController(this); } // Find your VideoView in your video_main.xml layout myVideoView = (VideoView) findViewById(R.id.videoView); // Create a progressbar progressDialog = new ProgressDialog(this); // Set progressbar title progressDialog.setTitle("ABCDEFGH"); // Set progressbar message progressDialog.setMessage("Loading..."); progressDialog.setCancelable(false); // Show progressbar progressDialog.show(); try { Uri video = Uri.parse(Videos_URL); myVideoView.setVideoURI(video); myVideoView.setMediaController(mediaControls); } catch (Exception e) { Log.e("Error", e.getMessage()); e.printStackTrace(); } myVideoView.requestFocus(); myVideoView.setOnPreparedListener(new OnPreparedListener() { // Close the progress bar and play the video public void onPrepared(MediaPlayer mp) { progressDialog.dismiss(); myVideoView.seekTo(position); if (position == 0) { myVideoView.start(); } else { myVideoView.pause(); } } }); } @Override public void onSaveInstanceState(Bundle savedInstanceState) { super.onSaveInstanceState(savedInstanceState); savedInstanceState.putInt("Position", myVideoView.getCurrentPosition()); myVideoView.pause(); } @Override public void onRestoreInstanceState(Bundle savedInstanceState) { super.onRestoreInstanceState(savedInstanceState); position = savedInstanceState.getInt("Position"); myVideoView.seekTo(position); } }
回答6:
Be sure that the decoder (target sdk) supports the video format you are using. You can use VLC Player to convert video format to the desired one. In my case, I converted the MP4 to WebM file and load it in the VideoView.
Here is how you get the file path and play your video.
String path = "android.resource://" + getPackageName() + "/" + R.raw.sample; VideoView videoView = (VideoView)findViewById(R.id.videoView); videoView.setVideoURI(Uri.parse(path)); videoView.start()
Source: Video format and codec support https://developer.android.com/guide/topics/media/media-formats.html
回答7:
Try this following code it works..........
VideoView videoView=(VideoView)findViewById(R.id.videoView); videoView.setVideoPath("android.resource://"+getPackageName()+"/"+R.raw.videoname; videoView.start();