Can't play this video. Android videoView mp4 recorded by android device

匿名 (未验证) 提交于 2019-12-03 02:51:02

问题:

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(); 


易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!