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,7 +458,18 @@ public class FlvMetadata {
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setDuration(String durationStr) {
|
public void setDuration(String durationStr) {
|
||||||
setDuration(Double.parseDouble(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) {
|
public void setDuration(double seconds) {
|
||||||
|
|
|
||||||
|
|
@ -104,4 +104,13 @@ public class FlvMetadataTest extends TestCase {
|
||||||
|
|
||||||
assertEquals(md1, md2);
|
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