2014-07-14 41 views
9

enter image description hereKhông thể phát video này. Android videoXem mp4 được ghi lại bằng thiết bị Android

Tôi đã tìm các giải pháp tiềm năng hiện tại với formats khác và những ứng dụng này vẫn phản hồi với lỗi được đề cập.

Cuối cùng, ghi video với các thiết bị tương tự và sử dụng nó như một nguồn lực cho ứng dụng này và nó vẫn không hoạt động.

Thiết bị: SGS2, lenovo a820

loại Video: MPEG-4 video (video/mp4)

videoView = (VideoView)findViewById(R.id.videoView); 
    videoView.setVideoPath("android.resource://raw/sample.mp4"); 
    videoView.start(); 
+0

Kiểm tra [này ] [1] thread cho lời giải thích. [1]: http://stackoverflow.com/questions/7806261/strange-behavior-of-android-videoview-cant-play-video – intrepidkarthi

Trả lời

8

chỉ xem code dưới đây của tôi nó hoạt động ... vấn đề trong khai Pathé ..

String uriPath = "android.resource://"+getPackageName()+"/"+R.raw.aha_hands_only_cpr_english; 
     Uri uri = Uri.parse(uriPath); 
     mVideoView.setVideoURI(uri); 

Thats nó ...

+7

Chỉ cần thử này, nó không phải là sollution. – Jacob

+0

thử liên kết này: http://androidexample.com/Play_Video_File_-_Android_Example/index.php?view=article_discription&aid=124&aaid=144 nó hoạt động cho tôi ... –

+0

chỉ cần một điều remeber ở đây để chande uripath theo tên gói của bạn. .. –

0

Đối với Lenovo A820, dưới đây là cần thiết:

- MP4/WMV/H.264/H.263 player 
- MP3/WAV/WMA/eAAC+ player 

chắc chắn rằng ur đoạn video phù hợp trong định dạng codec trên .

+0

plz gửi định dạng codec ur và SGS2 là thiết bị nào? – KOTIOS

0

thử đoạn mã sau ..

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(); 
0
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); 
    } 
} 
+0

thanx Andrii .. Trên thực tế tôi đã nhận được muộn cho lớp của tôi .. :-) –

1

tôi đã cố gắng tất cả mọi thứ đã đề cập trước nhưng nó chỉ ra rằng phép internet là cần thiết để đóng một tập tin mp4.

<uses-permission android:name="android.permission.INTERNET" /> 
0

Đảm bảo rằng bộ giải mã (mục tiêu sdk) hỗ trợ định dạng video bạn đang sử dụng. Bạn có thể sử dụng VLC Player để chuyển đổi định dạng video sang một trong những mong muốn. Trong trường hợp của tôi, tôi chuyển đổi các định dạng MP4 sang tập tin WebM và tải nó trong VideoView.

Đây là cách bạn có được đường dẫn tập tin và chơi video của bạn.

String path = "android.resource://" + getPackageName() + "/" + R.raw.sample; 
VideoView videoView = (VideoView)findViewById(R.id.videoView); 
videoView.setVideoURI(Uri.parse(path)); 
videoView.start() 

Nguồn: video định dạng và codec hỗ trợ https://developer.android.com/guide/topics/media/media-formats.html

0

Hãy thử đoạn mã sau này nó hoạt động ..........

 
VideoView videoView=(VideoView)findViewById(R.id.videoView); 

videoView.setVideoPath("android.resource://"+getPackageName()+"/"+R.raw.videoname; 

videoView.start(); 
Các vấn đề liên quan