mirror of
https://github.com/androidx/media.git
synced 2025-05-21 23:56:32 +08:00
Avoid swallowing exceptions when switching AssetLoader
Exceptions thrown when switching AssetLoader were not reported through the error listener. Therefore, the resources were not released and the export was not ending. PiperOrigin-RevId: 530626300
This commit is contained in:
parent
7875131e2a
commit
1105f194ca
@ -470,22 +470,27 @@ import java.util.concurrent.atomic.AtomicInteger;
|
||||
private void switchAssetLoader() {
|
||||
handler.post(
|
||||
() -> {
|
||||
addCurrentProcessedInput();
|
||||
totalDurationUs += currentAssetDurationUs;
|
||||
currentAssetLoader.release();
|
||||
isCurrentAssetFirstAsset = false;
|
||||
currentMediaItemIndex++;
|
||||
if (currentMediaItemIndex == editedMediaItems.size()) {
|
||||
currentMediaItemIndex = 0;
|
||||
sequenceLoopCount++;
|
||||
try {
|
||||
addCurrentProcessedInput();
|
||||
totalDurationUs += currentAssetDurationUs;
|
||||
currentAssetLoader.release();
|
||||
isCurrentAssetFirstAsset = false;
|
||||
currentMediaItemIndex++;
|
||||
if (currentMediaItemIndex == editedMediaItems.size()) {
|
||||
currentMediaItemIndex = 0;
|
||||
sequenceLoopCount++;
|
||||
}
|
||||
EditedMediaItem editedMediaItem = editedMediaItems.get(currentMediaItemIndex);
|
||||
currentAssetLoader =
|
||||
assetLoaderFactory.createAssetLoader(
|
||||
editedMediaItem,
|
||||
checkNotNull(Looper.myLooper()),
|
||||
/* listener= */ SequenceAssetLoader.this);
|
||||
currentAssetLoader.start();
|
||||
} catch (RuntimeException e) {
|
||||
onError(
|
||||
ExportException.createForAssetLoader(e, ExportException.ERROR_CODE_UNSPECIFIED));
|
||||
}
|
||||
EditedMediaItem editedMediaItem = editedMediaItems.get(currentMediaItemIndex);
|
||||
currentAssetLoader =
|
||||
assetLoaderFactory.createAssetLoader(
|
||||
editedMediaItem,
|
||||
checkNotNull(Looper.myLooper()),
|
||||
/* listener= */ SequenceAssetLoader.this);
|
||||
currentAssetLoader.start();
|
||||
});
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user