我想用Java构建一个程序,它接收一个音频文件并将音频音量信息与时间戳一起转储到CSV文件中。我需要这个音频数据与我正在收集已经有时间戳的其他数据对齐。关于如何处理这样的问题的任何建议?
我正在将数据从JSON文件解析为CSV,因此这里更容易看到来自CSV文件的示例:
01-29-2014 00:00:00 GMT-05:00 0.0371 67 86.7 0
01-29-2014 00:01:00 GMT-05:00 0.0368 74 86.7 0
01-29-2014 00:02:00 GMT-05:00 0.0417 77 86.5 0
01-29-2014 00:03:00 GMT-05:00 0.0408 71 86.5 0
01-29-2014 00:04:00 GMT-05:00 0.0404 76 86.3 0
01-29-2014 00:05:00 GMT-05:00 0.037 71 86.2 0
01-29-2014 00:06:00 GMT-05:00 0.0411 73 86.2 0
01-29-2014 00:07:00 GMT-05:00 0.038 69 86.1 0
01-29-2014 00:08:00 GMT-05:00 0.0339 68 86 0
01-29-2014 00:09:00 GMT-05:00 0.0349 null 86 11
01-29-2014 00:10:00 GMT-05:00 0.0327 null 85.8 22
01-29-2014 00:11:00 GMT-05:00 0.0346 null 85.8 85
01-29-2014 00:12:00 GMT-05:00 0.0502 77 85.8 0
01-29-2014 00:13:00 GMT-05:00 0.0502 76 85.8 0
01-29-2014 00:14:00 GMT-05:00 0.0446 74 85.8 0
01-29-2014 00:15:00 GMT-05:00 0.0455 77 85.8 0
01-29-2014 00:16:00 GMT-05:00 0.0448 79 85.6 0
01-29-2014 00:17:00 GMT-05:00 0.0437 78 85.5 0
01-29-2014 00:18:00 GMT-05:00 0.0506 89 85.5 0
01-29-2014 00:19:00 GMT-05:00 0.0518 103 85.5 0
01-29-2014 00:20:00 GMT-05:00 0.0484 80 85.7 0
时间从UNIX时间戳开始,并使用脚本转换为此格式。我打算从音频中提取的数据看起来与此类似,其中一列中的时间戳和另一列中的音频级别。
答案 0 :(得分:0)
好吧,每当我听到“时间戳”这个词时。我想起了System.currentTimeMillis()。这将返回milliseconds passed since 1970。但是在你的情况下,如果你想测量你在歌曲中相对于歌曲开头的位置,你应该使用System.nanoTime()这更准确(我相信更快)。这将返回纳米秒或从任意点返回(你真的不关心),但你可以这样得到'delta':
long start = System.nanoTime();
... do something ...
long delta = System.nanoTime() - start;
如果您希望它与您已有的其他数据对齐,您可以发布一些数据,以便我们可以看到它具有哪种格式?