I am trying to get the duration of the audio files for trimming them, I am using the below code,
audioAsset = [AVURLAsset assetWithURL:itemURL];
CMTime assetTime = [audioAsset duration];
Float64 duration = CMTimeGetSeconds(assetTime);
when I provide itemURL of any audio file of media library, I get the proper duration, and then I am able to trim the audio file. Then I save the trimmed audio file in document directory. But when I try to trim the already trimmed file the same code returns me 0 as duration. However I am able to play the trimmed file and get the duration using AVAudioPlayer, but what is the problem with AVURLAsset I am not able to figure out.
Can anyone help? I have already tried almost all the answers of such question in stackoverflow.
I think AVURLAsset
needs to know the type extension of your file to compute its duration.
You're probably storing your file as {fileName}
and not as {fileName}.{extension}
.
If you run the following code with yourFileName
without extension you get *** Could not find format reader for URL
, and return value 0.
import AVFoundation
let fileName = *yourFileName*
let url = NSURL(fileURLWithPath: fileName)
let asset = AVURLAsset(URL: url, options: nil)
println(asset.duration.value.description)
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With