basic support for duration strings like 0:00:23, i,e, h:mm:ss
This commit is contained in:
parent
e7a18e77a8
commit
e177e571f4
2 changed files with 21 additions and 1 deletions
|
|
@ -458,8 +458,19 @@ public class FlvMetadata {
|
|||
}
|
||||
|
||||
public void setDuration(String durationStr) {
|
||||
if (durationStr != null && durationStr.contains(":")) {
|
||||
int ps = durationStr.lastIndexOf(':');
|
||||
double seconds = Double.parseDouble(durationStr.substring(ps + 1));
|
||||
int pm = durationStr.lastIndexOf(':', ps - 1);
|
||||
if (pm >= 0) {
|
||||
seconds += 60 * Double.parseDouble(durationStr.substring(pm + 1, ps));
|
||||
seconds += 3600 * Double.parseDouble(durationStr.substring(0, pm));
|
||||
}
|
||||
setDuration(seconds);
|
||||
} else {
|
||||
setDuration(Double.parseDouble(durationStr));
|
||||
}
|
||||
}
|
||||
|
||||
public void setDuration(double seconds) {
|
||||
this.duration.set(Double.valueOf(seconds));
|
||||
|
|
|
|||
|
|
@ -104,4 +104,13 @@ public class FlvMetadataTest extends TestCase {
|
|||
|
||||
assertEquals(md1, md2);
|
||||
}
|
||||
|
||||
public void testSetDuration() {
|
||||
FlvMetadata m = new FlvMetadata();
|
||||
m.setDuration("1:02:03");
|
||||
Object o = m.get("duration");
|
||||
assertTrue(o.getClass() == Double.class);
|
||||
Double durationSeconds = (Double) o;
|
||||
assertEquals(3600 + 2*60 + 3, durationSeconds.intValue());
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue