java - android复制mp3文件成功但持续时间没有改变
问题描述
我尝试将 mp3 文件复制到外部存储中并限制新文件的持续时间。它可以工作,但是当它开始时,虽然我跑到限制时间,它仍然像旧文件一样显示结束时间。
private void copy(File in, File out) throws IOException {
FileInputStream is = null;
FileOutputStream os = null;
try {
is = new FileInputStream(in);
os = new FileOutputStream(out);
byte[] buffer = new byte[1024];
int length;
while ((length = is.read(buffer)) > 0 && out.length()<175642) {
os.write(buffer, 0, length);
}
} finally {
assert is != null;
is.close();
assert os != null;
os.close();
}
}
我该如何解决。我真的很期待你的帮助。祝大家拥有美好的一天!
解决方案
您只需剪切文件的其余部分。这会导致一种损坏的文件,因为头块中的数据(例如长度)不再正确。
有关 mp3 文件格式的一些信息: https ://en.wikipedia.org/wiki/MP3
我强烈建议在缩短文件后调整标题信息。
推荐阅读
- flutter - 为 QR 码扫描器添加一个小窗口,用于扫描商品并添加到购物车按钮,在 Flutter App 的同一屏幕上显示商品详情
- python - 如何在模式之后捕获所有内容,直到在文本中找到该模式的另一个实例?
- python - 使用 feature_importance、SelectFromModel 和 gridsearch 构建 RandomForestRegressor 的步骤是什么?
- twitter-bootstrap - Vue.js 生产构建具有不同的生成 CSS 样式
- google-kubernetes-engine - 在 Kubernetes 集群 GCP 上阻止 ICMP 流量
- matplotlib - 防止 twinx() 图中的“darkgrid”ax2 网格线剖析 ax1 曲线
- php - 如何正确迁移数据或运行数据处理(非模式迁移)
- java - 如何将对象作为参数传递给弹簧方面?
- json - 将表数据转换为 Jsons - 您为此类任务选择什么数据库?
- git - Jenkins 作业无法从 GIT 创建更改日志