我无法使用exoplayer2.2离线播放歌曲。
这是我的密码。
public void initializePlayer(View view) {
playerView = view.findViewById(R.id.player_background_view);
playerView.setPlayer(player);
player.setPlayWhenReady(true);
player.seekTo(currentWindow, playbackPosition);
Uri uri = Uri.parse("file:///storage/sdcard0/Sounds/Music/song.mp3");
MediaSource mediaSource = buildMediaSource(uri);
player.prepare(mediaSource, true, true);
}
private MediaSource buildMediaSource(Uri uri) {
return new ExtractorMediaSource(uri,
new DefaultHttpDataSourceFactory("exoplayer-codelab"),
new DefaultExtractorsFactory(), null, null);
}
我得到以下错误。
ExoPlayerImplInternal: Source error. com.google.android.exoplayer2.upstream.Loader$UnexpectedLoaderException: Unexpected ClassCastException: libcore.net.url.FileURLConnection cannot be cast to java.net.HttpURLConnection
at com.google.android.exoplayer2.upstream.Loader$LoadTask.run(Loader.java:317)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
at java.lang.Thread.run(Thread.java:841)
Caused by: java.lang.ClassCastException: libcore.net.url.FileURLConnection cannot be cast to java.net.HttpURLConnection
at com.google.android.exoplayer2.upstream.DefaultHttpDataSource.makeConnection(DefaultHttpDataSource.java:393)
at com.google.android.exoplayer2.upstream.DefaultHttpDataSource.makeConnection(DefaultHttpDataSource.java:350)
at com.google.android.exoplayer2.upstream.DefaultHttpDataSource.open(DefaultHttpDataSource.java:192)
at com.google.android.exoplayer2.source.ExtractorMediaPeriod$ExtractingLoadable.load(ExtractorMediaPeriod.java:640)
at com.google.android.exoplayer2.upstream.Loader$LoadTask.run(Loader.java:295)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
at java.lang.Thread.run(Thread.java:841)
谁能帮忙吗。
我自己找到了答案
public void initializePlayer(Song song, View view) {
String source = "file:///storage/sdcard0/Sounds/Music/song.mp3";
Context mContext = getApplicationContext();
if (mExoPlayer == null) {
mExoPlayer =
ExoPlayerFactory.newSimpleInstance(
new DefaultRenderersFactory(this), new DefaultTrackSelector(), new
DefaultLoadControl());
}
mExoPlayer.setPlayWhenReady(true);
DataSource.Factory dataSourceFactory =
new DefaultDataSourceFactory(
mContext, Util.getUserAgent(mContext, "Music Player"), null);
ExtractorsFactory extractorsFactory = new DefaultExtractorsFactory();
// The MediaSource represents the media to be played.
MediaSource mediaSource =
new ExtractorMediaSource(
Uri.parse(source), dataSourceFactory, extractorsFactory, null, null);
mExoPlayer.prepare(mediaSource, true, true);
}
我正在尝试为ExoPlayer 2实现离线DRM支持,但我有一些问题。 我找到了这段对话。ExoPlayer 1有一些实现。以及如何使用ExoPlayer 2实现的一些步骤。十、 我对离线DrmSessionManager有问题,which实现了DrmSessionManager。在该示例中,是从ExoPlayer 1导入的DrmSessionManager。x、 如果我从ExoPlayer 2导
我正在编写一个,其中我提供了功能,几乎满足了我的需求,但面临一些小问题。 我是如何实现我的音乐播放器的: 正在列出SD卡中可用的音频歌曲(路径类似:) 一旦用户点击任何音频,然后启动媒体播放器 在媒体播放器屏幕中,我为用户提供了返回音频列表的导航 用户返回,现在选择了一些其他歌曲来听(这里我面临的问题是,用户将可以播放新选择的歌曲,但也会播放旧歌曲,而一次只能播放上一次选择的歌曲,但在我的情况下,
我正在制作音频播放器(android)。问题是我什么时候启动我的应用程序
我正在尝试在android中实现BrightCove Exoplayer。我能够成功地实现播放单个视频。现在我正在尝试使用Exoplayer播放播放列表。播放列表中的第一个视频,在第一个视频结束时,播放器不会播放播放列表中的下一个视频。它再次显示第一个视频的开头;如果我按下播放按钮,第一个视频将再次播放。我想实现连续播放播放列表中的所有视频。我错过什么了吗?我将我的代码张贴在下面: 主要活动:
我正在尝试用新的Android Studio测试Google Play服务。我有一个依赖于google_play_服务的项目。罐子但是,当我尝试重建项目时,会出现以下错误: 它似乎有两个BuildConfig文件和两个R类。我如何解决这个问题? 编辑: 我注意到编译器编译了两个R.java文件:一个在我的项目文件夹中,另一个在文件夹%USERPROFILE%中。AndroidStudioPrevi
我正在使用ExoPlayer播放视频的应用程序。出于某种原因,当我试图暂停时,视频播放器没有显示播放/暂停图标。我只为播放/暂停做了一个自定义布局,并将其设置在PlayerView上。使用或播放/暂停视频。到处都找不到解决办法,好像我错过了什么,但又不知道是什么。