Поддержка Chromium Embedded Framework MP3 - PullRequest
8 голосов
/ 07 ноября 2011

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

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

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

В то же время Google Chrome пишет «возможно» (и фактически воспроизводит).

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

Ответы [ 6 ]

10 голосов
/ 04 декабря 2011

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

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

6 голосов
/ 03 марта 2016

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

Существует способ включить поддержку 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

6 голосов
/ 10 сентября 2012

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

Подробные инструкции по сборке: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.

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

2 голосов
/ 01 августа 2017

опции для включения 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.bat:

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.bat:

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

Есть две вики-статьи, в которых объясняется, как создавать CEF / Chromium:

  1. https://bitbucket.org/chromiumembedded/cef/wiki/MasterBuildQuickStart.md
  2. и BranchesAndBuilding в той же вики
1 голос
/ 16 июня 2016

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

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
1 голос
/ 06 мая 2013
Поддерживается только кодек MP3 *

При сборке в Google Chrome проверьте Поддержка кодеков Chromium .

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

...