我正在尝试在我的应用中显示图像和视频。为此我使用RecyclerView
。图像正在显示但视频未显示。该视频已完全下载,但未在OnPreparedListener
内的VideoView
内。如果我只使用VideoView
视频正在播放....请提出一些解决方案....谢谢。 (如果有人想看到我要发布的代码)
我也使用了TextureView
和SurfaceView
,我对这些观点也遇到了同样的问题......
这是scrollView
和VideoView
的示例示例。
str = "http://files.parsetfss.com/13e1c98b-895f-401e-83f3-7bf9b944001d/tfss-e199dd99-2564-4092-9df8-4b279ca2e7d0-video.mp4";
Ion.with(context)
.load(str)
.progress(new ProgressCallback() {
@Override
public void onProgress(long downloaded, long total) {
System.out.println("" + downloaded + " / " + total);
Log.d("TAG", downloaded + " / " + total);
}
})
.write(fileCache.getFile(str))
.setCallback(new FutureCallback<File>() {
@Override
public void onCompleted(Exception e, File file) {
// download done...
Log.d("TAG", file.getAbsolutePath());
// do stuff with the File or error
videoUri = Uri.fromFile(file);
videoView2.setVideoURI(videoUri);
videoView2.requestFocus();
videoView2.setOnPreparedListener
(new MediaPlayer.OnPreparedListener() {
@Override
public void onPrepared(final MediaPlayer mp) {
Log.d("TAG", " mp4 Done ready to play ");
videoView2.start();
mp.setLooping(true);
mp.setVolume(0, 0);
videoView2.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
Log.d("TAG", " Volume ");
if (abc) {
mp.setVolume(0, 0);
Log.d("TAG", " Volume 0 ");
abc = false;
} else {
mp.setVolume(1, 1);
Log.d("TAG", " Volume 1 ");
abc = true;
}
return false;
}
});
}
}
);
}
});
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/scrollView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
tools:context="blpacademy.videotestwithscrollandwithout.VideoView_with_scroll">
<LinearLayout
android:orientation="vertical"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
>
<VideoView
android:id="@+id/videoView2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
/>
</LinearLayout>
</ScrollView>
更新
我尝试使用ListView
和VideoView
....它也无效......
我在滚动视图(ListView
/ RecyclerView
/ ScrollView
)里面想到的是视频(VideoView
)没有播放....如果正在播放({{ 1}} / TextureView
)视图不滚动...
答案 0 :(得分:1)
在我完成所有实验之后,如果你想播放视频(ListView
/ {{{}},我会在任何滚动视图(RecyclerView
/ ScrollView
/ videoView
)内知道1}} / TextureView
)然后您无法使用SurfaceView
或wrap_content
作为宽度&amp;高度。您必须为视频分配静态或动态值。然后视频将在滚动视图上工作。
match_parent
答案 1 :(得分:0)
<强>解决方案:强>
您可以在布局XML中为高度和宽度提供固定数字,如下所示:
<VideoView
android:id="@+id/videoView"
android:layout_width="256dp"
android:layout_height="256dp"
/>
或者在运行时将高度和宽度设置为videoView,如下所示:
videoView.setDimension(256,256);