web-dev-qa-db-ja.com

この動画を再生できません。 Android Androidデバイスで記録されたvideoView mp4

enter image description here

私は他のformatsで既存の潜在的なソリューションを探しましたが、それらはまだ言及されたエラーで応答します。

最後に、同じデバイスでビデオを録画し、このアプリのリソースとして使用しましたが、まだ機能しません。

デバイス:_SGS2_、lenovo _a820_

動画タイプ:MPEG-4 video (video/mp4)

_    videoView = (VideoView)findViewById(R.id.videoView);
    videoView.setVideoPath("Android.resource://raw/sample.mp4");
    videoView.start();
_
15
Jacob

以下のコードスニペットを参照してください...問題はパス宣言にありました。

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

それでおしまい...

14

前述のすべてを試しましたが、mp4ファイルを再生するにはインターネットの許可が必要であることがわかりました。

<uses-permission Android:name="Android.permission.INTERNET" />
8
Vol-i

デコーダー(ターゲットSDK)が使用しているビデオ形式をサポートしていることを確認してください。 VLCプレーヤーを使用して、ビデオ形式を目的の形式に変換できます。私の場合、MP4をWebMファイルに変換し、VideoViewにロードしました。

ファイルパスを取得してビデオを再生する方法は次のとおりです。

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

ソース:ビデオ形式とコーデックのサポートhttps://developer.Android.com/guide/topics/media/media-formats.html

1
noahutz

Lenovo a820の場合、以下が必要です。

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

urビデオが上記のコーデック形式に適合することを確認してください。

0
KOTIOS

次のコードを試してください..

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
user2041884
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
Arjun Singh