android - ExoPlayer 内存泄漏问题 - LeakCanary
问题描述
我在启动画面中发现了内存泄漏
它正在使用ExoPlayer在初始屏幕上播放资产文件夹中的视频。
初始化播放器:
player = ExoPlayerFactory.newSimpleInstance(
this,
new DefaultTrackSelector(),
new DefaultLoadControl()
);
videoView.setPlayer(player);
DataSpec dataSpec = new DataSpec(Uri.parse("assets:///video.mp4"));
final AssetDataSource assetDataSource = new AssetDataSource(this);
try {
assetDataSource.open(dataSpec);
} catch (AssetDataSource.AssetDataSourceException e) {
Timber.e(e.getLocalizedMessage());
}
DataSource.Factory dataSourceFactory = new DataSource.Factory() {
@Override
public DataSource createDataSource() {
return assetDataSource;
}
};
MediaSource mediaSource = new ExtractorMediaSource(
assetDataSource.getUri(),
dataSourceFactory,
new DefaultExtractorsFactory(),
null,
null
);
player.setRepeatMode(Player.REPEAT_MODE_ALL);
player.prepare(mediaSource, true, false);
xml:
<com.google.android.exoplayer2.ui.PlayerView
android:id="@+id/videoView"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fitsSystemWindows="true"
app:resize_mode="zoom"
app:use_controller="false" />
你能看出什么问题吗?泄漏在哪里?泄漏在哪里?:)
解决方案
推荐阅读
- javascript - 如何为打印机功能编写 Jasmine 测试
- jquery - Jquery Selector - 查找 div 是否有内文
- c# - 根据分数提高球员的速度?
- python - 将返回多个地图对象的函数转换为单个数组
- logic-programming - Pydatalog,无法打印规则的右侧
- python - 如何根据两个不同列中存在的值转置 DataFrame?
- python - Pandas - DataFrames之间的映射值
- reactjs - 将 FastImage 与我的 react 本机应用程序一起使用时出错
- django - Django/Graphene Mutation 错误“您需要传递有效的 Django 模型”无法修复
- google-chrome-extension - 如何使用 SockJS 连接到服务器