我尝试使用 exoPlayer 使用它的 ClippingMediaSource 播放一小段 mp3 音频(44100 采样率),但它会将 fragment 的开头缩短大约 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);
最佳答案
根据exoplayer的文档,有两种方法
- ClippingMediaSource(MediaSource MediaSource, long startPosition, long endPositionUs)
创建一个新的剪辑源,它包装指定的源并在指定的开始和结束位置之间提供样本。
- ClippingMediaSource(MediaSource mediaSource, long startPositionUs, long endPositionUs, boolean enableInitialDiscontinuity)
使用 false 尝试第二种方法或调整 startPosition 和 endPosition。 如需更多检查,请查看 clipping documentation ExoPlayer 的。希望这会解决您的问题。
关于java - 如何让exoplayer的ClippingMediaSource更加精准?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51903264/