ride/app-media

为Ride应用程序集成的媒体库。

1.0.0 2016-10-14 09:23 UTC

This package is auto-updated.

Last update: 2024-09-12 23:08:15 UTC


README

这是Ride应用层中ride/lib-media的实现。

DependencyMediaFactory是主要接口,它执行与ride\library\media\SimpleMediaFactory相同的功能,除了使用媒体项目工厂上注册的依赖项。有关更多信息,请参阅ride/lib-media的README。

参数

  • google.api.key:与Google相关API调用(YouTube、Geocode等)的API密钥

代码参考

您可以在createMediaItem方法中手动添加媒体项目工厂,也可以将它们作为依赖项添加,这些依赖项可以是简单的依赖项,例如对于VimeoMediaItemFactory

// ride/app-media/config/dependencies.json
{
    "dependencies": [
        // ...
        {
            "interfaces": "ride\\library\\media\\factory\\MediaItemFactory",
            "class": "ride\\library\\media\\factory\\VimeoMediaItemFactory",
            "id": "vimeo"
        }
        // ...
    ]
}

或者您还可以添加clientId参数,例如对于YoutubeMediaItemFactory

// ride/app-media/config/dependencies.json
{
    "dependencies": [
        // ...
        {
            "interfaces": "ride\\library\\media\\factory\\MediaItemFactory",
            "class": "ride\\library\\media\\factory\\YoutubeMediaItemFactory",
            "id": "youtube",
            "calls": [
                {
                    "method": "setClientId",
                    "arguments": [
                        {
                            "name": "clientId",
                            "type": "parameter",
                            "properties": {
                                "key": "google.api.key"
                            }
                        }
                    ]
                }
            ]
        }
        // ...
    ]
}

代码示例

<?php

use ride\application\media\DependencyMediaFactory;

use ride\library\dependency\DependencyInjector;

function testMediaFactory(DependencyInjector $dependencyInjector) {
    $dependencyMediaFactory = new DependencyMediaFactory($dependencyInjector);

    // create a MediaItem (eg. Vimeo)
    $vimeoMediaItem = $dependencyMediaFactory->createMediaItem('https://vimeo.com/130848841');

    // create a MediaItem which depends on a clientId, but is injected via the DependencyInjector (eg. Youtube)
    $youtubeMediaItem = $dependencyMediaFactory->createMediaItem('https://www.youtube.com/watch?v=njos57IJf-0');

    // ```
}

相关模块

安装

您可以使用Composer安装此模块。

composer require ride/app-media