媒体项目和媒体源之间的不同?
MediaItem
和MediaSource
在Exoplayer中有什么不同,以及如何在最新版本的Exoplayer库(2.17.1)中使用MediaSource?
这是简单的项目如何使用MediaSource而不是MediaItem?
package com.agono.exoplayer;
import ...
public class MainActivity extends AppCompatActivity {
private Context ctx;
private StyledPlayerView playerView;
private Button button1;
private boolean isShowingTrackSelectionDialog;
private DefaultTrackSelector trackSelector;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
String videoUri=getIntent().getStringExtra("url");
trackSelector = new DefaultTrackSelector(/* context= */ this);
playerView = findViewById(R.id.test);
button1= findViewById(R.id.button1);
ExoPlayer player = new ExoPlayer.Builder(this)
.setTrackSelector(trackSelector)
.build();
MediaItem mediaItem = MediaItem.fromUri(videoUri);
// Attach player to the view.
playerView.setPlayer(player);
// Set the media item to be played.
player.setMediaItem(mediaItem);
// Prepare the player.
player.prepare();
}
}
Whats different between MediaItem
and MediaSource
in exoplayer and how i can use MediaSource in in the latest version of exoplayer library (2.17.1) ?
This is simple project how use MediaSource instead of MediaItem ?
package com.agono.exoplayer;
import ...
public class MainActivity extends AppCompatActivity {
private Context ctx;
private StyledPlayerView playerView;
private Button button1;
private boolean isShowingTrackSelectionDialog;
private DefaultTrackSelector trackSelector;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
String videoUri=getIntent().getStringExtra("url");
trackSelector = new DefaultTrackSelector(/* context= */ this);
playerView = findViewById(R.id.test);
button1= findViewById(R.id.button1);
ExoPlayer player = new ExoPlayer.Builder(this)
.setTrackSelector(trackSelector)
.build();
MediaItem mediaItem = MediaItem.fromUri(videoUri);
// Attach player to the view.
playerView.setPlayer(player);
// Set the media item to be played.
player.setMediaItem(mediaItem);
// Prepare the player.
player.prepare();
}
}
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
埃法尔文档讨论了这一点:
( https://exoplayer.dev/media-sources.html )
和:
如果您只想播放媒体项目或创建播放列表,那么您可能只需要使用MediaItem-最新的Codelabs中有一些好的示例:<<< a href =“ https://developer.android.com/codelabs/exoplayer-intro#0” rel =“ nofollow noreferrer”> https://develoveler.android.com/codelabs/codelabs/exoplayer-intro-intro-intro-intro-intro-intro-intro-intro-intro-intro-intro-intro#0
The ExoPlayer documentation discusses this:
(https://exoplayer.dev/media-sources.html)
and:
If all you want is to play a media item or create a playlist then you probably only need to use MediaItem - there are some good examples in the latest CodeLabs: https://developer.android.com/codelabs/exoplayer-intro#0