Поддержка MP3 врезанной рамки Хромия

Я загрузил Chromium Embedded Framework r306 для Windows и построил его. К сожалению, это показывает, что он не поддерживает МР3:

<script>
var a = document.createElement("audio");
document.write(a.canPlayType('audio/mpeg'));
</script>

вывод пуст, и когда я пытаюсь открыть файл mp3, его нельзя воспроизвести (ogg воспроизводится).

в то же время Google Chrome пишет "возможно" (и он действительно играет).

Как добавить поддержку MP3 в CEF?

6 ответов


ПРИМЕЧАНИЕ: ПОЖАЛУЙСТА, РАССМОТРИТЕ ЮРИДИЧЕСКИЕ ВОПРОСЫ, ПРЕЖДЕ ЧЕМ ПРОДОЛЖИТЬ

есть способ включить поддержку MP3 в CEF, но вам придется изменить cef.gypi в исходном дистрибутиве восстановите проекты visual studio и перестройте.

пошаговые инструкции:

enter image description here enter image description here aenter image description here enter image description here aenter image description here enter image description here


Маршалл Гринблатт (сопровождающий Chromium Embedded Framework) устраняет отсутствие поддержки MP3 (и AAC) в Chromium и CEF в этот отчет об ошибке (см. комментарий #7, скопировали ниже):

кодеки, такие как MP3 и AAC, включены в выпуски Google Chrome, но не в сборки Chromium. Это связано с тем, что эти форматы не открыты и требуют лицензирования. Распространение этих кодеков с приложением без лицензионного соглашения может нарушают закон в некоторых странах. Вы должны обсудить это с адвокатом, если это необходимо.


есть способ включить поддержку MP3 в CEF, но вам придется изменить cef.gypi в исходном дистрибутиве восстановите проекты visual studio и перестройте.

детальная сборка instructions:
https://bitbucket.org/chromiumembedded/cef/wiki/BranchesAndBuilding

включение поддержки проприетарных кодеков:
http://code.google.com/p/chromiumembedded/issues/detail?id=371

добавить 'proprietary_codecs': 1 к вашему cef.конфигурация gypi так, что USE_PROPRIETARY_CODECS будет определен как требуется net/base / mime_util.cc.

вам также понадобятся правильные сборки библиотек Avcodec, avformat и avutil. К счастью, вы можете просто получить их из каталога установки самого Google Chrome ($User/AppData/Local/Google/Chrome/$Version).


MP3-кодек поддерживается только при сборке в Google Chrome, проверьте поддержка кодеков chromium.

на стороне клиента совместимым способом может быть Flash, проверьте код Google translate.


я следовал шагам в ответе null1941, и они отлично работали, за исключением нескольких предостережений, связанных с изменением сборки.PS1 script

step 16 e. search for any instances of 3.y.z and replace them with the current version you are building (from the folder name containing the builds ex. 3.2272.32.gbda8dc7).  

in function DownloadNuget it is trying to see if you have nuget in a specific place and if it isn't there it tries to go get it.  Problem is DownloadFile would fail if the save directory didn't already exist. so you can manualy create or add this to the function:
    $Nuget_dir = Join-Path $env:LOCALAPPDATA .\nuget
    if(-not (Test-Path $Nuget_dir))
    {
        mkdir $Nuget_dir
    }

change line: "Copy-Item $Cef64\include $CefInclude -Recurse | Out-Null" to use $Cef32 if you don't have 64bit cef folders

параметры для включения proprietary codecs (т. е. H. 264 и MP3) были перемещены с момента последнего ответа.

вы можете прочитать мое ответ со всеми подробностями о том, как скомпилировать CEF с включенным proprietary codecs

магия теперь происходит здесь:

set GN_DEFINES=is_official_build=true proprietary_codecs=true ffmpeg_branding=Chrome

есть 2 пакетных файла, которые вы должны обновить / создать (как найдено здесь):

c:\code\chromium_git\update.летучая мышь:

set CEF_USE_GN=1
set GN_DEFINES=is_official_build=true proprietary_codecs=true ffmpeg_branding=Chrome
set GN_ARGUMENTS=--ide=vs2015 --sln=cef --filters=//cef/*
python ..\automate\automate-git.py --download-dir=C:\code\chromium_git --depot-tools-dir=C:\code\depot_tools --no-distrib --no-build

c:\code\chromium_git\chromium\src\cef\create.летучая мышь:

set CEF_USE_GN=1
set GN_DEFINES=is_win_fastlink=true proprietary_codecs=true ffmpeg_branding=Chrome
set GN_ARGUMENTS=--ide=vs2015 --sln=cef --filters=//cef/*
call cef_create_projects.bat

есть 2 статьи wiki, которые объясняют, как построить CEF/Chromium:

  1. https://bitbucket.org/chromiumembedded/cef/wiki/MasterBuildQuickStart.md
  2. и BranchesAndBuilding в той же wiki