如何将音频文件添加到WordPress博客并使其自动播放?

时间:2012-10-04 作者:Neo

如何将音频文件添加到wordpress博客,当有人点击帖子时,音乐开始自动播放。

1 个回复
最合适的回答,由SO网友:fuxia 整理而成

将所有音频文件附加到后期使用的基本部分get_children():

$audio_files = get_children(
    array (
        \'post_parent\'    => get_the_ID(),
        \'post_status\'    => \'inherit\',
        \'post_type\'      => \'attachment\',
        \'post_mime_type\' => \'audio\'
    )
);
对于最后附加的文件URL,请使用wp_get_attachment_url() 并将最后一个子项的ID作为参数传递:

$id   = array_pop( array_keys( $audio_files ) );
$url  = wp_get_attachment_url( $id );
要插入音频播放器,请使用HTML5 audio element 使用autoplay 属性:

$audio = "<audio src=\'$url\' controls autoplay loop></audio>";
还有其他解决方案可以播放兼容性更好的音频文件。我会让你来实施这些。

让我们把这个插件放在一起。我建议您使用此插件,以便在访问者开始抱怨时快速关闭它。那个will 很快就会发生,请参阅此答案末尾的注意事项。:)

<?php
/* Plugin Name: Auto play latest music attachment */

add_filter( \'the_content\', \'wpse_67108_autplay_music\' );

function wpse_67108_autplay_music( $content )
{
    if ( ! is_singular() )
    {
        return $content;
    }

    $audio_files = get_children(
        array (
            \'post_parent\'    => get_the_ID(),
            \'post_status\'    => \'inherit\',
            \'post_type\'      => \'attachment\',
            \'post_mime_type\' => \'audio\'
        )
    );

    $audio = \'\';

    if ( $audio_files )
    {
        $id   = array_pop( array_keys( $audio_files ) );
        $url  = wp_get_attachment_url( $id );
        // add a \'controls\' attribute to enable controls
        $audio = "<audio src=\'$url\' controls autoplay loop></audio>";
    }

    return $audio . $content;
}
screen shot of a sample post

上载音频文件默认情况下,WordPress不允许上载所有文件。A.wav 例如,将被拒绝。您可能需要另一个插件来扩展允许的mime(文件)类型列表:

<?php
/* Plugin Name: Extend MIME types */
add_filter( \'upload_mimes\', \'t5_upload_mimes\' );

if ( ! function_exists( \'t5_upload_mimes\' ) )
{
    function t5_upload_mimes( $mime_types = array() )
    {
        $mime_types[\'ai\']  = \'application/postscript\';
        $mime_types[\'psd\'] = \'image/vnd.adobe.photoshop\';
        $mime_types[\'svg\'] = \'image/svg\';
        $mime_types[\'tex\'] = \'application/x-tex\';
        $mime_types[\'tgz\'] = \'application/x-compressed\';
        $mime_types[\'tmd\'] = \'application/octet-stream\';
        // audio
        $mime_types[\'aac\']  = \'audio/aac\';
        $mime_types[\'mid\']  = \'audio/mid\';
        $mime_types[\'mp1\']  = \'audio/mpeg\';
        $mime_types[\'mp2\']  = \'audio/mpeg\';
        $mime_types[\'mp3\']  = \'audio/mpeg\';
        $mime_types[\'mpg\']  = \'audio/mpeg\';
        $mime_types[\'mpeg\'] = \'audio/mpeg\';
        $mime_types[\'mp4\']  = \'audio/mp4\';
        $mime_types[\'m4a\']  = \'audio/mp4\';
        $mime_types[\'oga\']  = \'audio/ogg\';
        $mime_types[\'ogg\']  = \'audio/ogg\';
        $mime_types[\'wav\']  = \'audio/wav\';
        $mime_types[\'webm\'] = \'audio/webm\';
        return $mime_types;
    }
}
注意事项请添加warning 在您的帖子列表中。不要忽略控件。许多游客不会喜欢自动播放的声音,因为他们…

正在听其他音乐,打电话,和其他人一起在办公室工作,使用屏幕阅读器,有慢性耳鸣,是由一些声音引起的(我就是其中之一)

结束

相关推荐

Error Using Audio plugin

我已经安装了音频插件,以创建Xbrowser播放列表,但出现以下错误jPlayer 2.0.0 : id=\'jquery_jplayer_1\' : Error!到目前为止,我所做的只是创建一个新帖子,使用wordpress音频上传器将音频上传到帖子,使用以下短代码将播放列表添加到帖子,然后发布。[audio layout=\"list\"] 也尝试过[audio]但产生了同样的错误这些文件是。mp3格式,可以在其他播放器中播放。如果相关,该站点存储在本地。