Что лучший способ состоит в том, чтобы объединить mp3 файлы? [закрытый]

У меня есть аналогичная проблема, которая действительно раздражает то, что это происходит в любое время, трудно воспроизвести точные условия, которые делают это возможным. Я только закрываю DDBB в методе ondestroy класса MainActivity. То, что я сделал, это добавить try / catch при каждом использовании db и добавить следующий catch, в этом случае он находится в середине цикла while, в других функциях я вызываю функцию снова один раз:

catch (SQLException e) {
    e.printStackTrace();
    Log.d(TAG, "MainService: error in AccSaveToDB with "+mainDB.getPath()+" in iteration "+j+". Closing and re-opening DB");
    DBHelper.close();
    mainDB.close();
    j--;
}

И это в начале каждой функции, которая обращается к базе данных:

if (mainDB==null || !mainDB.isOpen()) {
    DBHelper = DefSQLiteHelper.getInstance(getApplicationContext(), "Data.db", null, 1);
    mainDB = DBHelper.getWritableDatabase();
}

До сих пор у меня до сих пор есть эта ошибка, я еще не мог понять причину, но по крайней мере, мое приложение не разбивается, и оно возобновляет то, что он должен делать. Я не вижу, удаляется ли файл, но эти решения работают для меня

58
задан raven 5 November 2009 в 15:19
поделиться

9 ответов

Как Thomas Owens указал, просто связывание файлов оставит несколько заголовков ID3 рассеянными всюду по получающемуся составному файлу - таким образом, информация времени/скорости передачи будет дико неправильной.

Вы собираетесь должны использовать инструмент, который может объединить аудиоданные для Вас.

mp3wrap был бы идеален для этого - он разработан для объединений, файлы MP3, не будучи должен декодировать + повторно кодируют данные (который привел бы к потере качества звука), и будет также иметь дело с тегами ID3 разумно.

получающийся файл может также быть разделен назад в его составные части с помощью mp3splt инструмента - mp3wrap, добавляет информация к комментарию IDv3 для разрешения этого.

49
ответ дан David Precious 24 November 2019 в 18:46
поделиться

Проблема времени имеет отношение к заголовкам ID3 файлов MP3, который является чем-то, что Ваш метод не принимает во внимание, поскольку весь файл копируется.

у Вас есть предпочтительный язык, который Вы хотите использовать, или он не имеет значения? Это будет влиять на то, какие библиотеки доступны, которые поддерживают операции, которые Вы хотите.

5
ответ дан Thomas Owens 24 November 2019 в 18:46
поделиться

Файлы MP3 имеют заголовки, которые необходимо уважать.

Вы могли эфир пользоваться библиотекой как Аудио Проект Библиотеки С открытым исходным кодом и писать инструмент вокруг этого. Или можно использовать инструмент, который понимает mp3 файлы как Смелость .

3
ответ дан Chris M. 24 November 2019 в 18:46
поделиться

Как David говорит, , mp3wrap является способом пойти. Однако я нашел, что это не исправило аудио заголовок длины, таким образом, iTunes отказался играть целый файл даже при том, что все данные были там. (Я объединил три 7-минутных файла, но это только видело до первых 7 минут.)

я вскопал это сообщение в блоге , который объясняет, как зафиксировать это и также как скопировать теги ID3 из исходных файлов (самостоятельно, mp3wrap удаляет Ваши теги ID3). Или просто скопировать теги (использующий id3cp от id3lib), сделайте:

id3cp original.mp3 new.mp3
2
ответ дан joelhardi 24 November 2019 в 18:46
поделиться

Лично я использовал бы что-то как mplayer с аудио передачей хотя опция, например, копия-oac

0
ответ дан 24 November 2019 в 18:46
поделиться

Я использовал бы Winamp, чтобы сделать это. Создайте плей-лист файлов, которые Вы хотите объединить в одного, выбрать Дисковый выходной плагин Писателя, выбрать имя файла, и Вы сделаны. Файл, который Вы получите, будет корректным файлом MP3, и можно установить скорость передачи и т.д.

1
ответ дан szeryf 24 November 2019 в 18:46
поделиться

Раньше я не слышал о mp3wrap. Выглядит отлично. Я предполагаю, что кто-то тоже где-то сделал это в графическом интерфейсе. Но, просто чтобы ответить на исходный пост, я написал графический интерфейс, который выполняет метод COPY / b. Итак, под покровом ничего нового под солнцем, но программа предназначена для того, чтобы сделать процесс менее болезненным, если у вас есть много файлов для слияния ... И вы не хотите перекодировать И каждый набор файлов для слияния одинаковый битрейт. Если он у вас есть (и вы работаете в Windows), проверьте Mp3Merge по адресу: http://www.leighweb.com/david/mp3merge и посмотрите, что вы ищете.

1
ответ дан 24 November 2019 в 18:46
поделиться

Используйте ffmpeg или аналогичный инструмент для преобразования всех ваших MP3-файлов в согласованный формат, например

ffmpeg -i originalA.mp3 -f mp3 -ab 128kb -ar 44100 -ac 2 intermediateA.mp3  
ffmpeg -i originalB.mp3 -f mp3 -ab 128kb -ar 44100 -ac 2 intermediateB.mp3

Затем во время выполнения объедините ваши файлы вместе:

cat intermediateA.mp3 intermediateB.mp3 > output.mp3

Наконец, запустите их через инструмент MP3Val для исправления любых ошибок потока без принудительного полного перекодирования:

mp3val output.mp3 -f -nb
17
ответ дан 24 November 2019 в 18:46
поделиться

Instead of using the command line to do

copy /b 1.mp3+2.mp3 3.mp3

you could instead use "The Rename" to rename all the MP3 fragments into a series of names that are in order based on some kind of counter. Then you could just use the same command line format but change it a little to:

copy /b *.mp3 output_name.mp3

That is assuming you ripped all of these fragment MP3's at the same time and they have the same audio settings. Worked great for me when I was converting an Audio book I had in .aa to a single .mp3. I had to burn all the .aa files to 9 CD's then rip all 9 CD's and then I was left with about 90 mp3's. Really a pain in the a55.

0
ответ дан 24 November 2019 в 18:46
поделиться
Другие вопросы по тегам:

Похожие вопросы: