Java 在 VideoView [Android] 中播放来自 url 的视频
声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow
原文地址: http://stackoverflow.com/questions/40433248/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me):
StackOverFlow
Play video from url in VideoView [Android]
提问by Aligator
I found a similar questions but nothing work for me. I try play video from this url:
我发现了一个类似的问题,但对我没有任何作用。我尝试从这个网址播放视频:
http://videocdn.bodybuilding.com/video/mp4/62000/62792m.mp4
My java code:
我的Java代码:
VideoView videoView= (VideoView)findViewById(R.id.exerciseVideo);
Uri uri = Uri.parse(TEST_URL);
videoView.setVideoURI(uri);
videoView.requestFocus();
videoView.start();
When I run app nothing is displayed in activity and IDE does not show any errors. ANy idea, please?
当我运行应用程序时,活动中没有显示任何内容,IDE 也没有显示任何错误。有什么想法吗?
EDIT:
编辑:
My activity where I want to show video:
我要在其中显示视频的活动:
<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>
采纳答案by Vishnu M Menon
Try this code.. This code works perfectly for me..
试试这个代码.. 这个代码非常适合我..
final VideoView videoView;
videoView = (VideoView)findViewById(R.id.videoView);
videoView.setVideoPath("http://videocdn.bodybuilding.com/video/mp4/62000/62792m.mp4");
videoView.start();
回答by Alex Karamyshev
As I know you shouldn't use wrap_content
for VideoView
height.
VideoView
didn't resize itself after video cached
据我所知,你不应该使用wrap_content
的VideoView
高度。
VideoView
视频缓存后没有调整自身大小
回答by Devolper Engg
Kindly add Internet permission them Change layout_height wrap_content into match parent. this is a code for this problem
请添加 Internet 权限,将 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();
}
}