Total Commander Forum Index Total Commander
Форум поддержки пользователей Total Commander
Сайты: Все о Total Commander | Totalcmd.net | Ghisler.com | RU.TCKB
 
 RulesRules   SearchSearch   FAQFAQ   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

Single Post  Topic: [wlx/wdx] TCMediaInfo 
Author Message
AkulaBig



PostPosted: Mon Nov 04, 2024 12:07    Post subject: Reply with quote

Так как даже после исправлений продолжительность звучания аудио-файлов продолжала в некоторых случаях различаться, решил разобраться с этим вопросом до конца.
В итоге получился вот такой вариант подсчета продолжительности:
Code:

      <!-- General -->
      <column name="Duration">
         <unit name="hh:mm:ss" type="script">Output:=TimingFormat('%hh:%mm:%ss', Duration);</unit>
         <unit name="hh:mm:ss.fff" type="script">Output:=TimingFormat('%hh:%mm:%ss.%fff', Duration);</unit>
         // FIXES: Show Duration in second
         <unit name="sec" type="script">Output:=Round(Number(Duration)/1000);</unit>
         // FIXES: Show Duration in millisecond
         <unit name="msec">Duration</unit>
         // FIXES: Show Duration Custom
         <unit name="Custom" type="script">
         <![CDATA[
            Output:='';
            if (Duration <= 0) then Exit;
            if Not StrIsNumber(Duration) then Exit;
            Secs := Integer(Duration / 1000); //convert miliseconds to seconds
            Hours := Integer(Secs / 3600); //3600 seconds in an hour
            Mins := Integer((Secs - (Hours * 3600)) / 60); //60 secs per min
            Secs := Secs - ((Hours * 3600) + (Mins * 60)); //leftovers
            If (Hours < 10) then Hours := '0' + String(Hours);
            If (Mins < 10) then Mins := '0' + String(Mins);
            If (Secs < 10) then Secs := '0' + String(Secs);
            Output := StrFormat('%s:%s:%s', Hours, Mins, Secs))
         ]]>
         </unit>
      </column>

Этот вариант полностью соответствует отображению MediaInfo, что подтверждаю скрином. Дело в том, что многие при подсчете продолжительности расчет ведут от округленных секунд, что конечно неправильно. Даже K-Lite Codeck Pack считает неправильно. Что видно на скрине. Хотелось-бы увидеть эти изменения в плагине, для стандартных форматов продолжительности. Чтобы у всех были одинаковые данные. Еще нашел косячки в последнем TCMediaInfo.xml. Из-за чего не отображались год, наличие обложки и комменты аудио-файлов. Еще там кое-какие обновления. Опять-же, если сочтете нужным, включите эти изменения в новую версию плагина. https://www.dropbox.com/scl/fi/g17ie6raiopm67pngdcwc/TCMediaInfo.xml?rlkey=p6t0cy4cbrx7pqusk831dqx6l&dl=1
Я конечно и сам сейчас выложу на ру.борде эту информацию. Но очень-бы хотелось, чтобы это было единоообразно для всех.

На скрине первая колонка продолжительности мой кастом, вторая - ваша стандартная.
View user's profile Send private message


Powered by phpBB © 2001, 2005 phpBB Group