9

Windows用のChromium Embedded Framework r306をダウンロードしてビルドしました。残念ながら、それは mp3 をサポートしていないことを示しています:

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

出力が空で、mp3 ファイルを開こうとすると再生できません (ogg は再生可能です)。

同時に、Google Chrome は「多分」と書き込みます (実際に再生されます)。

CEF で MP3 のサポートを追加するにはどうすればよいですか?

4

6 に答える 6

10

Marshall Greenblatt ( Chromium Embedded Frameworkのメンテナー) は、このバグ レポートで、Chromium と CEF での MP3 (および AAC) のサポートの欠如に対処しています(コメント #7 を参照、以下にコピー):

MP3 や AAC などのコーデックは Google Chrome リリースに含まれていますが、Chromium ビルドには含まれていません。これは、これらの形式がオープンではなく、ライセンスが必要なためです。ライセンス契約なしでこれらのコーデックをアプリケーションと共に配布すると、特定の国では法律に違反する可能性があります。必要に応じて弁護士に相談する必要があります。

于 2011-12-04T00:40:13.357 に答える
6

CEFでMP3サポートを有効にする方法はありますが、ソースディストリビューションの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で必要とされるように定義されるようにします。

また、avcodec、avformat、およびavutilDLLの適切なビルドも必要です。幸いなことに、これらはGoogle Chrome自体のインストールディレクトリ($ User / AppData / Local / Google / Chrome / $ Version)から取得できます。

于 2012-09-10T15:13:28.670 に答える
6

注: 続行する前に、法的問題を考慮してください。

CEF で MP3 サポートを有効にする方法はありますが、ソース ディストリビューションの cef.gypi を変更し、ビジュアル スタジオ プロジェクトを再生成して再構築する必要があります。

ステップバイステップの説明:

ここに画像の説明を入力 ここに画像の説明を入力 aここに画像の説明を入力 ここに画像の説明を入力 aここに画像の説明を入力 ここに画像の説明を入力

于 2016-03-03T12:29:09.870 に答える
3

有効にするオプション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 のビルド方法を説明する 2 つの wiki 記事があります。

  1. https://bitbucket.org/chromiumembedded/cef/wiki/MasterBuildQuickStart.md
  2. そしてBranchesAndBuilding同じウィキで
于 2017-08-01T16:58:00.387 に答える
1

MP3 コーデックのみがサポートされます。Google Chrome にビルドする場合は、chromium の Codec Supportを確認してください。

クライアント側では、互換性のある方法は Flash かもしれません。Google 翻訳のコードを確認してください。

于 2013-05-06T07:50:27.567 に答える
1

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
于 2016-06-16T15:52:24.287 に答える