这是流媒体网址:
"https://rfcmedia.streamguys1.com/70hits.aac"
以下是我的代码:
val dataSourceFactory: DataSource.Factory = DefaultHttpDataSource.Factory()
val hlsMediaSource: HlsMediaSource = HlsMediaSource.Factory(dataSourceFactory)
.createMediaSource(MediaItem.fromUri("https://rfcmedia.streamguys1.com/70hits.aac"))
exoPlayer.setMediaSource(hlsMediaSource)
exoPlayer.prepare()
错误:
原因:com.google.android.exoplayer2.ParserException:输入不是以#EXTM3U头开头。
我错过了什么?
由于某种原因,ExoPlayer似乎没有自动检测到这是一个音频Uri不知道为什么,但下面的代码对我有效:
package com.example.hls_test;
import android.os.Bundle;
import android.widget.Button;
import android.widget.TextView;
import androidx.appcompat.app.AppCompatActivity;
import com.google.android.exoplayer2.ExoPlayer;
import com.google.android.exoplayer2.MediaItem;
import com.google.android.exoplayer2.util.MimeTypes;
public class MainActivity extends AppCompatActivity {
ExoPlayer player;
private static final String hlsUri = "https://rfcmedia.streamguys1.com/70hits.aac";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
player = new ExoPlayer.Builder(this).build();
Button b = findViewById(R.id.playButton);
TextView t = findViewById(R.id.errormessage);
b.setOnClickListener(view -> {
try {
t.setText("");
MediaItem item = new MediaItem.Builder()
.setUri(hlsUri)
.setMimeType(MimeTypes.AUDIO_AAC)
.build();
player.setMediaItem(item);
player.prepare();
player.play();
} catch (Exception e) {
t.setText("Error occurred playing media item: " + e.getMessage());
}
});
}
private void releaseResources() {
if ( player != null ) {
if ( player.isPlaying() ) {
player.stop();
}
player.release();
player = null;
}
}
@Override
public void onBackPressed() {
releaseResources();
super.onBackPressed();
}
@Override
protected void onDestroy() {
releaseResources();
super.onDestroy();
}
}
经过多次尝试,我决定去ExoPlayer库。我很高兴使用方便和不断更新。此外,它减少了我的APK的大小三倍。 不幸的是,ExoPlayer库无法播放一些音频流。我尝试过调试、更改对URL的调用等等。不成功。 以下是我不能用ExoPlayer库玩的流的例子,但我可以用Vitamio复制: http://42747t.lp.azioncdn.net:1935/2747t/a/mp4:access_op
我的问题是关于媒体播放器直播流从我的应用程序的url? 我正在尝试通过媒体播放器播放实时流mp3音频。
有人尝试过使用ExoPlayer来实现这一点吗?我试着在网上找,但没有成功。 当我说无间隙播放时,我指的是使用媒体播放器背靠背播放本地视频的问题。在第一视频完成播放之后,在第二视频开始之前有1秒的明显延迟。 希望这个问题有助于进一步理解这个问题。请看以下问题以供参考: Android:MediaPlayer无间隙或无缝视频播放
一旦我向concatenatingMediaSource添加一首歌,我就会在它旁边添加一个标签,所以我想知道如何通过这个特定的标签播放一首歌。 obs:ctd是歌曲位置的参考号;
你好,我正在开发一个应用程序,我可以在其中使用widevine drm保护来播放dash stream。我已经阅读了exoplayer的示例,但我的需求不同,我会在我的网站上,当单击dash url时,它将开始在exoplayer中播放流。我已经成功地完成了打开exoplayer活动的第一部分,但是我不知道如何在exoplayer上运行受drm保护的流。 我知道流和drm许可证url。 我正在编写
1.1.1. 多媒体播放 1.1.1. 多媒体播放 我们事实上对上游芯片厂商自带的播放器方式做了调整。 Amlogic 芯片 BaseCode 我们禁用了芯片厂商的原生代码的 libplayer 包,原因是芯片厂商的播放器是直接使用 ALSA 框架来调用音频播放功能的。 这对我们 RokidOS 平台让多个进程使用音频设备造成阻碍。基于这个因素,我们使用了 RokidOS 开发的媒体播放库 lib