Articles of exoplayer

在Android中,使用exoplayer,如何使用与设备不具有相同宽高比的video来填充表面视图?

我有一个使用ExoPlayer播放video的活动。 当我全屏时,除非设备的宽高比与video的长宽比相等,否则video的顶部和底部会出现小黑条。 这是布局的样子: <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> 我希望那样 aspectRatioFrameLayout.setAspectRatio(mVideo.getAspectRatio()); 会解决问题,但我没有成功。 即使video的一部分从屏幕上切断,是否有办法用video填充屏幕?

如何使用谷歌机器人Exoplayer的广告和video单人播放器

目前在给定的exoplayer演示应用程序谷歌是使用两个exoplayers播放广告和video。 播放前期投放和中期投放广告时,我遇到了video重叠问题。 所以为了避免这种情况,我只想用一个外行人播放广告和video。 有没有人试过使用单个的外行者?

使用Exoplayerstream式video列表

我想实现stream式video列表应用程序。 我用RecyclerView来显示我的列表项。 项目types包括4种types:文章,状态,照片和video。 我们只应该关注videotypes。 这里是我的代码为RecyclerView的适配器: public class FollowedPostAdapter extends RecyclerView.Adapter implements OnFollowTagCallback, OnLikeCallback { private Context context; private List<PostItem> newsFeedList; public RecyclerView recyclerView; public LinearLayoutManager linearLayoutManager; private HashMap<Integer, DemoPlayer> playerList; private int visibleThreshold = 5; // private int previousTotal = 0; private int visibleItemCount, firstVisibleItem, totalItemCount; private boolean loading; private OnRecyclerViewLoadMoreListener loadMoreListener; private final String […]

如何玩多个(在我的情况下最多四个).m3u8videostream在Android单一活动?

自从很长时间以来,我一直在面对这些问题,而且我真的对Android的支持HLS感到失望,因为它performance得过于随机。 要求: 1)播放多个.m3u8videostream 2)应该在不同的设备和API级别上工作。 我所面临的问题和相关问题: 方法 – 1) 与本机MediaPlayer的TextureView : video播放的数量取决于设备,对于某些设备,它只播放一个video(我的设备 – 三星Galaxy Grand-quattro – api level 16),对于某些设备,它可以播放全部四个videostream。 取决于api级别,一些.m3u8 url正在jellybean上工作,但不在kitkat上面。 方法 – 2) ExoPlayer : 方法的相同问题-1 方法 – 3) 维生素 : 成功播放每个.m3u8url 没有suuport多个videoview 方法 – 4) grafika : 它不稳定,但(正如他们所提到的)。 我正在寻求的解决scheme: 1)应该播放多个videostream,与上述任何一种方法一样,我的设备可以播放单个video,但Milestone Mobile似乎能够在我的设备中播放8个videostream(如何?:O)。 2)如果本机MediaPlayer不能播放一些.m3u8url,那么如何debugging是什么确切的问题是不是有一个解码器,解码器,段,TS文件等问题? 3)如果本机MediaPlayer无法播放stream媒体,那么我应该如何制作支持大多数stream媒体URL的自定义MediaPlayer? 4)有没有可能与Vitamio一起播放多个video? 5)参考符合我要求的其他HLS客户? 就我个人而言,我想用方法1去,所以有什么我可以做的吗?

Exoplayer:如何通过耳机播放audio?

我正在使用下面的代码,当设备接近任何对象时,将audiostream切换到耳朵: @Override public void onSensorChanged(SensorEvent event) { if (mAudioManager.isWiredHeadsetOn() || !(mCurrentPlaybackStatus == STATUS_PLAYING || mCurrentPlaybackStatus == STATUS_PREPARING)) { return; } boolean isClose = event.values[0] < mSensor.getMaximumRange(); if (!mScreenDisabled && isClose) { mAudioManager.setMode(AudioManager.STREAM_MUSIC); mAudioManager.setSpeakerphoneOn(false); disableScreen(); mScreenDisabled = true; } else if (mScreenDisabled && !isClose) { mAudioManager.setSpeakerphoneOn(true); mAudioManager.setMode(mAudioManagerMode); enableScreen(); mScreenDisabled = false; } } 不幸的是,在调用.setMode(AudioManager.STREAM_MUSIC);时会有明显的延迟.setMode(AudioManager.STREAM_MUSIC); (> 500ms) […]

尝试使用ExoPlayer – 很多未知的东西

在互联网上没有提到什么在地球上是一个userAgent,我通过什么作为它的价值和用途。 没有文件,没有。 另外,我如何获得“video表示”是什么? // Build the video renderer. DataSource videoDataSource = new HttpDataSource(userAgent, HttpDataSource.REJECT_PAYWALL_TYPES, bandwidthMeter); ChunkSource videoChunkSource = new DashChunkSource(videoDataSource, new AdaptiveEvaluator(bandwidthMeter), videoRepresentations); ChunkSampleSource videoSampleSource = new ChunkSampleSource(videoChunkSource, loadControl, VIDEO_BUFFER_SEGMENTS * BUFFER_SEGMENT_SIZE, true); MediaCodecVideoTrackRenderer videoRenderer = new MediaCodecVideoTrackRenderer(videoSampleSource, null, true, MediaCodec.VIDEO_SCALING_MODE_SCALE_TO_FIT, 0, mainHandler, playerActivity, 50); // Build the audio renderer. DataSource audioDataSource = new HttpDataSource(userAgent, […]

在ViewPager的Swipe上停止Exoplayer

我正在使用ViewPager与单个片段实例,其中我显示的Media文件,如图像,video,audio。 我已经实现了ExoPlayer处理Video和Audio文件。 并Glide的图像。 为了避免内存泄漏,我在ItemViewerFragment.java释放这样的ExoPlayer对象: private void releasePlayer() { if (player != null) { player.release(); player = null; trackSelector = null; simpleExoPlayerView.setPlayer(null); } } @Override public void onStart() { super.onStart(); if (player == null && currentGalleryModel != null) { initializePlayer(); } } @Override public void onResume() { super.onResume(); if (player == null && currentGalleryModel != null) […]

游戏玩m3u8文件Android

尝试使用videoview和mediaplayer播放m3u8文件的多种方式后,我决定放弃。 每次我玩m3u8文件,我只听到声音(请不要写堆栈溢出回答我的问题,我已经把他们都冲了出来)问问周围,终于知道exoplayer也许是我正在寻找。 然而,外行似乎是一个新手,我不能find任何适当的教程 。 这就是说我自己是一个新手,所有关于跟踪器和blabla的谈话似乎对我来说太复杂了。 我只希望能够在我的应用程序中打开所有我的m3u8文件, 而不必将它们传递给vlc或任何外部意图。 logging我使用KitKat和以上。 所以外行应该是可以实施的。 所以,我绝对要求的是一个简单的教程,如何使用exoplayer或其他方式播放我的m3u8文件 ,显示video和播放audio, 而不只是其中之一。 请不要把我链接到谷歌开发的exoplayer页面。 我也去过那里 提前致谢 :)

ExoPlayer – 连续播放10个文件

我有10个video需要播放,一旦完成,下一个开始播放。 我正在使用Google的ExoPlayer ,我使用DEMO @ GitHub中的示例。 我可以播放1个video,但如果我尝试播放下一个,它不会启动。 如果我尝试重新启动播放器,并重新开始播放,则会崩溃。 private void loadvideo() { Uri uri = Uri.parse(VIDEO_LIBRARY_URL + currentVideo + ".mp4"); sampleSource = new FrameworkSampleSource(this, uri, null, 2); // 1. Instantiate the player. // 2. Construct renderers. videoRenderer = new MediaCodecVideoTrackRenderer(sampleSource, MediaCodec.VIDEO_SCALING_MODE_SCALE_TO_FIT_WITH_CROPPING); audioRenderer = new MediaCodecAudioTrackRenderer(sampleSource); // 3. Inject the renderers through prepare. player.prepare(videoRenderer, audioRenderer); // 4. […]

ExoPlayer – 如何播放本地mp3文件

我试图使用ExoPlayer而不是MediaPlayer,因为这是一个常见的错误,MediaPlayer返回错误的getCurrentPosition(),我需要一个替代品。 但我无法find任何地方如何通过文件path打开一个本地文件的文件相同的MediaPlayer的.setDataSource(String filepath) Google没有任何示例,官方文档网站奇怪地将两台电脑上的FireFox浏览器崩溃