我希望ExoPlayer在我的应用程序中实现Google .他们的文档对我来说似乎很模糊,而我正在寻找的是从URL播放视频,没有复杂的自定义设置或类似的东西.没有找到任何关于如何做的教程.他们在git上的例子对于我需要的东西来说太复杂了,因为我不熟悉视频流,所以我并不了解.我到目前为止所做的就是显示一个com.google.android.exoplayer.AspectRatioFrameLayout.
基本上,我有一个URL.我需要播放视频,并onConfigurationChanged在用户翻转屏幕时进行处理.
有人可以帮忙吗?
我有一个使用ExoPlayer播放视频的活动.当我全屏时,除非设备的宽高比等于视频的宽高比,否则我会在视频的顶部和底部看到小的黑条.
这是布局的外观:
<com.google.android.exoplayer.AspectRatioFrameLayout
android:id="@+id/video_frame"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:layout_alignParentRight="true"
android:layout_alignParentBottom="true">
<SurfaceView android:id="@+id/surface_view"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_gravity="fill_vertical"/>
<View android:id="@+id/shutter"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@android:color/black"/>
</com.google.android.exoplayer.AspectRatioFrameLayout>
Run Code Online (Sandbox Code Playgroud)
我希望如此
aspectRatioFrameLayout.setAspectRatio(mVideo.getAspectRatio());
Run Code Online (Sandbox Code Playgroud)
会解决问题,但我没有成功.有没有办法用视频填充屏幕,即使部分视频是从屏幕上切断的?
由于dip代表"设备无关像素",那么每个Android设备都有标准的下降数量吗?
示例:如果hdpi设备具有X dp /宽度和Y dp/height,则ldpi设备是否具有相同的值?即X和Y?
如果是这样,谁能告诉我确切的数字?
提前致谢.

这是我必须实现的目标.
谁知道我怎么能接近这个?
是否可以用XML完成?如果没有,我将如何缩放形状如此的图像?
我最近发现我在我的应用程序中实现的一些对话框工作得很好,除了在三星设备上.
在我测试的每个设备上,"setCancelable(true)"在点击它之外时忽略了对话框,除了在三星设备上.
我测试的三星设备是:三星Galaxy S3,S4和三星Galaxy Tab 2.
new AlertDialog.Builder(context).setCancelable(true)是确切的代码.
那里有其他人有这个问题吗?谢谢!
我有一个ViewPager ,Fragment如果某个动作发生,我必须更换第一个.
public static class PagerAdapter extends FragmentStatePagerAdapter{
private TempChannel latestChannel;
private VideosFragment.SortType sortType;
public PagerAdapter(FragmentManager fm) {
super(fm);
}
@Override
public Fragment getItem(int position) {
switch (position){
case 0:
if(latestChannel == null) {
return new LatestVideosFragment();
}else{
return VideosFragment.getVideosFragment(latestChannel, sortType);
}
case 1:
return new LiveVideosFragment();
case 2:
return new ConversationsFragment();
}
return null;
}
}
Run Code Online (Sandbox Code Playgroud)
基本上,当我单击某个通道时LatestVideosFragment,适配器中的第一个位置应该更改为VideosFragment该类的实例.
public void startLatestChannelFragment(TempChannel channel, VideosFragment.SortType sortType){
adapter.setLatestChannel(channel, sortType);
adapter.notifyDataSetChanged();
Log.d("x", "on channel started");
}
Run Code Online (Sandbox Code Playgroud)
我假设调用 …