Я вообще не владею Java, поэтому я действительно могу воспользоваться вашей помощью. Я пытаюсь прочитать продолжительность и скорость передачи битов из mp3-файла. Я использую java-библиотеку под названием «mp3spi» от http://www.javazoom.net/mp3spi/documents.html.Преобразование кода Java в ColdFusion
Так вар я был в состоянии определить, что эти объекты существуют:
<cfset AudioFormat = createObject("java", "org.tritonus.share.sampled.TAudioFormat")>
<cfset AudioFileFormat = createObject("java", "org.tritonus.share.sampled.file.TAudioFileFormat")>
<cfset AudioFileReader = createObject("java", "javax.sound.sampled.spi.AudioFileReader")>
У меня возникли проблемы со следующим кодом и преобразования его в ColdFusion:
File file = new File("filename.mp3");
AudioFileFormat baseFileFormat = new MpegAudioFileReader().getAudioFileFormat(file);
Map properties = baseFileFormat.properties();
Long duration = (Long) properties.get("duration");
Я попробовал несколько способов установки вышеперечисленных переменных, но я все время получаю сообщение об ошибке, что MpegAudioFileReader или getAudioFileFormat не существует. Однако, когда я сбрасываю переменные, которые я использовал для создания объектов Java, они существуют.
Вот что у меня есть:
<cfscript>
mp3file = FileOpen(ExpandPath("./") & originalfile, "readBinary");
baseFileFormat = AudioFileReader.getAudioFileFormat(mp3file);
properties = baseFileFormat.properties();
duration = properties.get("duration");
</cfscript>
Добро пожаловать в SO. Пожалуйста, прочитайте [FAQ] и [Ask] советы по написанию хороших вопросов.В общем, вы должны провести некоторое исследование, попытаться решить проблему самостоятельно, а затем показать, что вы пробовали, что не сработало и с чем конкретно вы столкнулись. Просто сказал: «Пожалуйста, помогите мне перенести этот код» без указания того, что вы действительно что-то сделали, не считается подходящим. –
* getAudioFileFormat не существует * Фактически ошибка говорит немного больше, чем это: «« Либо нет методов с указанным именем метода и типами аргументов, либо метод xxxx перегружен с помощью типов аргументов, которые ColdFusion не может дешифровать достоверно ». ». Поэтому часто это означает, что метод, который вы вызываете, существует, вы просто передаете неправильный тип аргумента. Приведенный выше код передает двоичный код 'getAudioFileFormat()', если вместо него требуется объект 'java.io.File'. Отсюда и ошибка. См. Пример @ Адама о том, как создать объект File (но используйте абсолютный путь, а не только имя файла) – Leigh