There are numerous approaches, but since you've already started with afinfo, I'll keep with that.
The first step is to extract the actual duration from the afinfo output:
set duration to (word -2 of (do shell script "/usr/bin/afinfo " & quoted form of (POSIX path of a) & "|grep duration")) as number
now you can just wrap this in a loop, adding up the numbers as you go. This will end up with a total number of seconds, and a little math gets you the minutes:seconds format:
-- initialize our counter:
set total_duration to 0
-- note you can now select multiple files
set file_list to choose file with multiple selections allowed
-- and loop through them
repeat with each_file in file_list
try
set this_duration to (word -2 of (do shell script "/usr/bin/afinfo " & quoted form of (POSIX path of each_file) & "|grep duration")) as number
set total_duration to total_duration + this_duration
end try
end repeat
-- now convert your seconds to minutes:
set num_minutes to total_duration div 60
set num_seconds to total_duration mod 60 as integer
display dialog "Total duration is " & num_minutes & ":" & (text -2 through -1 of ("0" & num_seconds))