本文整理匯總了PHP中core_useragent::is_webkit_android方法的典型用法代碼示例。如果您正苦於以下問題:PHP core_useragent::is_webkit_android方法的具體用法?PHP core_useragent::is_webkit_android怎麽用?PHP core_useragent::is_webkit_android使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在類core_useragent
的用法示例。
在下文中一共展示了core_useragent::is_webkit_android方法的4個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的PHP代碼示例。
示例1: list_supported_urls
public function list_supported_urls(array $urls, array $options = array())
{
$extensions = $this->get_supported_extensions();
$result = array();
foreach ($urls as $url) {
$ext = core_media::get_extension($url);
if (in_array($ext, $extensions)) {
if ($ext === 'ogg' || $ext === 'oga') {
// Formats .ogg and .oga are not supported in IE, Edge, or Safari.
if (core_useragent::is_ie() || core_useragent::is_edge() || core_useragent::is_safari()) {
continue;
}
} else {
// Formats .aac, .mp3, and .m4a are not supported in Opera.
if (core_useragent::is_opera()) {
continue;
}
// Formats .mp3 and .m4a were not reliably supported in Firefox before 27.
// https://developer.mozilla.org/en-US/docs/Web/HTML/Supported_media_formats
// has the details. .aac is still not supported.
if (core_useragent::is_firefox() && ($ext === 'aac' || !core_useragent::check_firefox_version(27))) {
continue;
}
}
// Old Android versions (pre 2.3.3) 'support' audio tag but no codecs.
if (core_useragent::is_webkit_android() && !core_useragent::is_webkit_android('533.1')) {
continue;
}
$result[] = $url;
}
}
return $result;
}
示例2: embed
public function embed($urls, $name, $width, $height, $options)
{
if (array_key_exists(core_media_manager::OPTION_ORIGINAL_TEXT, $options) && preg_match('/^<(video|audio)\\b/i', $options[core_media_manager::OPTION_ORIGINAL_TEXT], $matches)) {
// We already had media tag, do nothing here.
return $options[core_media_manager::OPTION_ORIGINAL_TEXT];
}
// Special handling to make videos play on Android devices pre 2.3.
// Note: I tested and 2.3.3 (in emulator) works without, is 533.1 webkit.
$oldandroid = core_useragent::is_webkit_android() && !core_useragent::check_webkit_android_version('533.1');
// Build array of source tags.
$sources = array();
foreach ($urls as $url) {
$mimetype = core_media_manager::instance()->get_mimetype($url);
$source = html_writer::empty_tag('source', array('src' => $url, 'type' => $mimetype));
if ($mimetype === 'video/mp4') {
if ($oldandroid) {
// Old Android fails if you specify the type param.
$source = html_writer::empty_tag('source', array('src' => $url));
}
// Better add m4v as first source, it might be a bit more
// compatible with problematic browsers.
array_unshift($sources, $source);
} else {
$sources[] = $source;
}
}
$sources = implode("\n", $sources);
$title = $this->get_name($name, $urls);
// Escape title but prevent double escaping.
$title = s(preg_replace(['/&/', '/>/', '/</'], ['&', '>', '<'], $title));
self::pick_video_size($width, $height);
if (!$height) {
// Let browser choose height automatically.
$size = "width=\"{$width}\"";
} else {
$size = "width=\"{$width}\" height=\"{$height}\"";
}
$sillyscript = '';
$idtag = '';
if ($oldandroid) {
// Old Android does not support 'controls' option.
$id = 'core_media_html5v_' . md5(time() . '_' . rand());
$idtag = 'id="' . $id . '"';
$sillyscript = <<<OET
<script type="text/javascript">
document.getElementById('{$id}').addEventListener('click', function() {
this.play();
}, false);
</script>
OET;
}
// We don't want fallback to another player because list_supported_urls() is already smart.
// Otherwise we could end up with nested <video> tags. Fallback to link only.
$fallback = self::LINKPLACEHOLDER;
return <<<OET
<span class="mediaplugin mediaplugin_html5video">
<video {$idtag} controls="true" {$size} preload="metadata" title="{$title}">
{$sources}
{$fallback}
</video>
{$sillyscript}
</span>
OET;
}
示例3: list_supported_urls
public function list_supported_urls(array $urls, array $options = array())
{
$extensions = $this->get_supported_extensions();
$result = array();
foreach ($urls as $url) {
$ext = core_media::get_extension($url);
if (in_array($ext, $extensions)) {
if ($ext === 'ogg' || $ext === 'oga') {
// Formats .ogg and .oga are not supported in IE or Safari.
if (core_useragent::is_ie() || core_useragent::is_safari()) {
continue;
}
} else {
// Formats .aac, .mp3, and .m4a are not supported in Firefox or Opera.
if (core_useragent::is_firefox() || core_useragent::is_opera()) {
continue;
}
}
// Old Android versions (pre 2.3.3) 'support' audio tag but no codecs.
if (core_useragent::is_webkit_android() && !core_useragent::is_webkit_android('533.1')) {
continue;
}
$result[] = $url;
}
}
return $result;
}
示例4: test_useragent_webkit_android
/**
* @dataProvider user_agents_providers
*/
public function test_useragent_webkit_android($useragent, $tests)
{
// Setup the core_useragent instance.
core_useragent::instance(true, $useragent);
if (isset($tests['is_webkit_android']) && $tests['is_webkit_android']) {
$this->assertTrue(core_useragent::is_webkit_android(), "Browser was not identified as an Android webkit browser");
$this->assertTrue(core_useragent::check_webkit_android_version());
} else {
$this->assertFalse(core_useragent::is_webkit_android(), "Browser was incorrectly identified as an Android webkit browser");
$this->assertFalse(core_useragent::check_webkit_android_version());
}
$versions = array('525' => false, '527' => false, '590' => false);
if (isset($tests['check_webkit_android_version'])) {
// The test provider has overwritten some of the above checks.
// Must use the '+' operator, because array_merge will incorrectly rewrite the array keys for integer-based indexes.
$versions = $tests['check_webkit_android_version'] + $versions;
}
foreach ($versions as $version => $result) {
$this->assertEquals($result, core_useragent::check_webkit_android_version($version), "Version incorrectly determined for Android webkit version '{$version}'");
}
}