如何使exoplayer的ClippingMediaSource更精确?

时间:2018-08-17 21:48:14

标签: java android exoplayer

我尝试使用exoPlayer的ClippingMediaSource播放一小段mp3音频(44100采样率),但它的开始时间缩短了250毫秒左右,太多了,是否有可能使它更精确?

我这样启动exoplayer:

dataSourceFactory = new DefaultDataSourceFactory(context, Util.getUserAgent(context, "com.example.player"));
Uri uri = Uri.fromFile(new File(path));
MediaSource audioSource = new ExtractorMediaSource.Factory(dataSourceFactory).createMediaSource(uri);
ExoPlayer exoPlayer = ExoPlayerFactory.newSimpleInstance(context, new DefaultTrackSelector());
exoPlayer.setPlayWhenReady(true);
ClippingMediaSource clip = new ClippingMediaSource(audioSource, 7_225_000, 8_175_000);
exoPlayer.prepare(clip);

1 个答案:

答案 0 :(得分:2)

根据exoplayer文档,有两种方法

  1. ClippingMediaSource(MediaSource MediaSource,长startPosition,长endPositionUs)

创建一个新的裁剪源,该裁剪源包装指定的源并在指定的开始和结束位置之间提供样本。

  1. ClippingMediaSource(MediaSource mediaSource,long startPositionUs,long endPositionUs,boolean enableInitialDiscontinuity)

使用false尝试第二种方法,或者调整startPosition和endPosition。 要进行更多检查,请使用此clipping documentation的ExoPlayer。希望这能解决您的问题。