我正在使用媒体应用体系结构作为构建音乐播放器应用程序的指南。但是它使用了来自支持媒体-compat/ Androidx介质的类。
但是现在AndroidX Media2可以在稳定的渠道上使用,我没有看到任何关于它的消息。那是什么?
请不要链接到JavaDoc,谢谢。
发布于 2021-02-28 15:33:44
Jetpack Media3发布了!
https://developer.android.com/jetpack/androidx/releases/media3
这篇博文很好地解释了媒体库是如何进化的。 I强烈建议与androidx.media3
集成。
如果由于任何原因不能使用androidx.media3
,我建议坚持使用androidx.media
而不是androidx.media2
,因为后者不受其他媒体集成(如Connect )的支持。将Media2与ExoPlayer集成也要复杂得多。
在我看来,从Media1切换到Media2的主要好处是能够提供更细粒度的权限控制。见Jaewan Kim的博客文章,深入讨论更复杂的SessionPlayerConnector API和在media2中接受或拒绝来自控制器的连接的权限。
如果您有一个使用MediaSession的现有MediaSession实现(最好是在MediaSessionConnector中使用ExoPlayer ),并且不需要Media2中的权限控件,则可以坚持使用Media1或升级到Media3。
安卓开发峰会2021年的“AndroidX媒体和ExoPlayer的下一步是什么?”演讲在Media3上深入得多。
发布于 2020-12-18 12:25:48
我找到的所有文件都是无用和过时的。androidx.media和appcompat媒体库都被androidx.media2所取代(但由于某种原因没有被废弃)。媒体应用最高级的API似乎是用于服务的MediaLibraryService和前端的MediaBrowser。只需绝对确保在服务上声明正确的意图过滤器(在javadoc :p中)
发布于 2022-02-03 16:07:17
下面是我使用Media2库(AndroidX)的工作解决方案:
实现“androidx.media2:media2-会话:1.2.0”实现“androidx.media 2:media2 2-小部件:1.2.0”实现"androidx.media2:media2-player:1.2.0“
public class VideoPlayerActivity extends FragmentActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_video_player_android_x);
VideoView simpleVideoView = findViewById(R.id.simpleVideoView);
MediaMetadata mediaMetaData = new MediaMetadata.Builder().putString(MediaMetadata.METADATA_KEY_TITLE, "Put your video text here").build();
UriMediaItem item = new UriMediaItem.Builder(Uri.parse("Put your video URL here")).setMetadata(mediaMetaData).build();
MediaPlayer mediaPlayer = new MediaPlayer(this);
simpleVideoView.setPlayer(mediaPlayer);
mediaPlayer.setMediaItem(item);
mediaPlayer.prepare();
mediaPlayer.play();
}
}
https://stackoverflow.com/questions/65224178
复制相似问题