web-dev-qa-db-ja.com

VideoViewのURLからビデオを再生する[Android]

同様の質問を見つけましたが、うまくいきません。このURLからビデオを再生してみます。

http://videocdn.bodybuilding.com/video/mp4/62000/62792m.mp4

My Javaコード:

VideoView videoView= (VideoView)findViewById(R.id.exerciseVideo);
    Uri uri = Uri.parse(TEST_URL);
    videoView.setVideoURI(uri);
    videoView.requestFocus();
    videoView.start();

アプリを実行すると、アクティビティに何も表示されず、IDEはエラーを表示しません。

編集:

ビデオを表示したいアクティビティ:

<ScrollView xmlns:Android="http://schemas.Android.com/apk/res/Android"
    Android:layout_width="match_parent"
    Android:layout_height="match_parent">

    <LinearLayout xmlns:Android="http://schemas.Android.com/apk/res/Android"
        xmlns:tools="http://schemas.Android.com/tools"
        Android:layout_width="match_parent"
        Android:layout_height="match_parent"
        Android:paddingBottom="@dimen/activity_vertical_margin"
        Android:paddingLeft="@dimen/activity_horizontal_margin"
        Android:paddingRight="@dimen/activity_horizontal_margin"
        Android:paddingTop="@dimen/activity_vertical_margin"
        tools:context="com.example.martin.fitnessapp.ExerciseDetailActivity"
        Android:orientation="vertical">


        <LinearLayout
            Android:orientation="horizontal"
            Android:layout_width="match_parent"
            Android:layout_height="match_parent"
            Android:weightSum="2">
            <ImageView
                Android:layout_width="match_parent"
                Android:layout_height="wrap_content"
                Android:id="@+id/exerciseImgA"
                Android:layout_weight="1"
                Android:scaleType="fitCenter"
                Android:adjustViewBounds="true"
                Android:paddingRight="8dp"/>

            <ImageView
                Android:layout_width="fill_parent"
                Android:layout_height="wrap_content"
                Android:id="@+id/exerciseImgB"
                Android:layout_weight="1"
                Android:scaleType="fitCenter"
                Android:adjustViewBounds="true"
                Android:paddingLeft="8dp"/>
        </LinearLayout>

        <TextView
            Android:layout_width="match_parent"
            Android:layout_height="wrap_content"
            Android:textAppearance="?android:attr/textAppearanceMedium"
            Android:text=""
            Android:id="@+id/exerciseDesc" />

        <VideoView
            Android:layout_width="match_parent"
            Android:layout_height="wrap_content"
            Android:id="@+id/exerciseVideo" />

        <ImageView
            Android:layout_width="fill_parent"
            Android:layout_height="wrap_content"
            Android:id="@+id/guideImg"
            Android:scaleType="fitCenter"
            Android:adjustViewBounds="true"/>


    </LinearLayout>
</ScrollView>
6
Aligator

このコードを試してください。このコードは私にとって完璧に機能します。

    final VideoView videoView;
    videoView = (VideoView)findViewById(R.id.videoView);
    videoView.setVideoPath("http://videocdn.bodybuilding.com/video/mp4/62000/62792m.mp4");
    videoView.start();
15
vishnumm93

私が知っているように、あなたはwrap_content for VideoView height。 VideoViewは、ビデオがキャッシュされた後に自分自身のサイズを変更しませんでした

2
Alex Karamyshev

インターネットの許可を追加してください。layout_height wrap_contentを一致する親に変更してください。これはこの問題のコードです

public class MainActivity extends Activity {
    private ProgressDialog bar;
    private String path="https://videocdn.bodybuilding.com/video/mp4/62000/62792m.mp4";
    private MediaController ctlr;
    private VideoView videoView;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        getWindow().setFormat(PixelFormat.TRANSLUCENT);
        setContentView(R.layout.activity_main);
      bar=new ProgressDialog(MainActivity.this);
        bar.setTitle("Connecting server");
        bar.setMessage("Please Wait... ");
        bar.setCancelable(false);
        bar.show();
       if(bar.isShowing()) {
           videoView = findViewById(R.id.v1);
           Uri uri = Uri.parse(path);
           videoView.setVideoURI(uri);
           videoView.start();
           ctlr = new MediaController(this);
           ctlr.setMediaPlayer(videoView);
           videoView.setMediaController(ctlr);
           videoView.requestFocus();
       }
        bar.dismiss();
    }
}
0
Devolper Engg