MediaElement.js是一个基于HTML5媒体API的灵活而健壮的jQuery/JavaScript音频和视频播放器插件。
支持几乎所有的音频和视频格式,如MP4、MP3、WebM以及Dailymotion、Facebook、SoundCloud、Twitch、Vimeo和Youtube。
1.在文档中加载核心MediaElement.js JavaScript库、OPTIONAL渲染图和语言文件。
- <!-- jQuery is OPTIONAL -->
- <script src="/path/to/cdn/jquery.min.js"></script>
- <!-- Core -->
- <link rel="stylesheet" href="/path/to/build/mediaelementplayer.min.css" />
- <script src="/path/to/build/mediaelement-and-player.js"></script>
- <!-- Dailymotion Renderer -->
- <script src="/path/to/build/renderers/dailymotion.js"></script>
- <!-- Facebook Video Renderer -->
- <script src="/path/to/build/renderers/facebook.js"></script>
- <!-- Soundcloud Renderer -->
- <script src="/path/to/build/renderers/soundcloud.js"></script>
- <!-- Twitch Renderer -->
- <script src="/path/to/build/renderers/twitch.js"></script>
- <!-- Vimeo Renderer -->
- <script src="/path/to/build/renderers/vimeo.js"></script>
- <!-- Youtube Renderer -->
- <script src="/path/to/build/renderers/youtube.js"></script>
- <!-- All Languages -->
- <script src="/path/to/build/lang/ca.js"></script>
- <script src="/path/to/build/lang/cs.js"></script>
- <script src="/path/to/build/lang/de.js"></script>
- <script src="/path/to/build/lang/es.js"></script>
- <script src="/path/to/build/lang/fa.js"></script>
- <script src="/path/to/build/lang/fr.js"></script>
- <script src="/path/to/build/lang/hr.js"></script>
- <script src="/path/to/build/lang/hu.js"></script>
- <script src="/path/to/build/lang/it.js"></script>
- <script src="/path/to/build/lang/ja.js"></script>
- <script src="/path/to/build/lang/ko.js"></script>
- <script src="/path/to/build/lang/ms.js"></script>
- <script src="/path/to/build/lang/nl.js"></script>
- <script src="/path/to/build/lang/pl.js"></script>
- <script src="/path/to/build/lang/pt.js"></script>
- <script src="/path/to/build/lang/ro.js"></script>
- <script src="/path/to/build/lang/ru.js"></script>
- <script src="/path/to/build/lang/sk.js"></script>
- <script src="/path/to/build/lang/sv.js"></script>
- <script src="/path/to/build/lang/tr.js"></script>
- <script src="/path/to/build/lang/uk.js"></script>
- <script src="/path/to/build/lang/zh-cn.js"></script>
- <script src="/path/to/build/lang/zh.js"></script>
2.在HTML5视频或音频上初始化MediaElement.js并完成。
- // As a jQuery plugin
- $('video, audio').mediaelementplayer({
- // more configuration here
- });
- // As a Vanilla JavaScript plugin
- var player = new MediaElementPlayer('player', {
- // more configurations here
- });
3.配置媒体播放器的可能选项。请注意,该插件支持所有本地HTML5视频和音频属性。有关更多详细信息,请参阅<video/>和<audio/>。
- $('video, audio').mediaelementplayer({
- /* Core Options */
- // List of renderers to use
- renderers: [],
- // Name of the container
- fakeNodeName: mediaelementwrapper,
- // Path where Flash shims are located
- pluginPath: 'build/',
- // path where the svg icon sprite is located
- iconSprite: 'mejs-controls.svg',
- // Possible values: always (CDN version) or sameDomain (local files)
- shimScriptAccess: 'sameDomain',
- // Success callback
- // media: the wrapper that mimics all the native events/properties/methods for all renderers
- // node: the original HTML video, audio or iframe tag where the media was loaded originally
- success: function(media, node) {},
- // Error callback
- error: function(media, node) {},
- // Dailymotion options
- // See: https://developer.dailymotion.com/player
- dailymotion: {},
- // Dash options
- // See: https://github.com/Axinom/drm-quick-start
- dash: {},
- // Facebook Video options
- // See: https://developers.facebook.com/docs/plugins/embedded-video-player/api#setup
- facebook: {},
- // flv.js options
- // See: https://github.com/Bilibili/flv.js/blob/master/docs/api.md
- flv: {},
- // hls.js options
- // See: https://github.com/dailymotion/hls.js/blob/master/API.md#fine-tuning
- hls: {},
- // Youtube options
- // See: https://developers.google.com/youtube/player_parameters#Parameters
- youtube: {
- nocookie: false,
- imageQuality: 'default', // hqdefault, mqdefault, sddefault and maxresdefault
- // Youtube options here
- },
- // Class prefix for player elements
- classPrefix: 'mejs__',
- // Poster URL
- poster: '',
- // Show the poster when the video is ended
- showPosterWhenEnded: false,
- // Show the poster when the video is paused
- showPosterWhenPaused: false,
- // Default video width/height
- defaultVideoWidth: 480,
- defaultVideoHeight: 270,
- // video width/height
- videoWidth: -1,
- videoHeight: -1,
- // Default audio width/height
- defaultAudioWidth: 400,
- defaultAudioHeight: 30,
- // audio width/height
- audioWidth : -1 Width of audio player
- audioHeight: -1 Height of audio player
- // Default amount to move back when back key is pressed
- defaultSeekBackwardInterval: function(media) {return (media.duration * 0.05);},
- // Default amount to move forward when forward key is pressed
- defaultSeekForwardInterval: function(media) {return (media.duration * 0.05);},
- // Set dimensions via JS instead of CSS
- setDimensions: true,
- // Initial volume when the player starts
- startVolume: 0.8,
- // Infinite loop
- loop: false,
- // Auto rewind when the media ends
- autoRewind: true,
- // Auto resize
- enableAutosize: true,
- // Time format
- timeFormat: 'mm:ss',
- // Always show hours
- alwaysShowHours: false,
- // Show frame count in timecode (##:00:00:00)
- showTimecodeFrameCount: false,
- // Frames per second
- framesPerSecond: 25,
- // Automatically calculate the width of the progress bar based on the sizes of other elements
- autosizeProgress: true,
- // Hide controls when playing and mouse is not over the video
- alwaysShowControls: false,
- // Hide the video control when the media is loading
- hideVideoControlsOnLoad: false,
- // Hide the video controls when the media is paused
- hideVideoControlsOnPause: false,
- // Clicking video element to toggle play/pause
- clickToPlayPause: true,
- // Time in ms to hide controls
- controlsTimeoutDefault: 1500,
- // Time in ms to trigger the timer when your mouse moves
- controlsTimeoutMouseEnter: 2500,
- // Time in ms to trigger the timer when your mouse leaves
- controlsTimeoutMouseLeave: 1000,
- // Use iPad's native controls
- iPadUseNativeControls: false,
- // Use iPhone's native controls
- iPhoneUseNativeControls: false,
- // Use Android's native controls
- AndroidUseNativeControls: false,
- // List of features/plugin to use in the player
- features: [playpause, current, progress, duration, tracks, volume, fullscreen],
- // Use all the default controls
- useDefaultControls: false,
- // Only for dynamic purposes
- isVideo: true,
- // Stretching modes for video player
- // or 'fill'
- stretching: 'auto',
- // Enable keyboard
- enableKeyboard: true,
- // Pause other players when the current one is playing
- pauseOtherPlayers: true,
- // Ignore pauseOtherPlayers option on the current player
- ignorePauseOtherPlayersOption: true,
- // Number of decimal places to show if frames are shown
- secondsDecimalLength: 0,
- // Custom error
- // string or function
- customError: function(media, node){},
- // Keyboard actions
- keyActions: {keys: [1,2,3...], action: function(player, media) { ... }},
- // Start point
- duration: -1,
- // Separator between the current time and the total duration
- timeAndDurationSeparator: '<span> | </span>'
- // Hide the volume on touch devices
- hideVolumeOnTouchDevices: true,
- // Enable tooltip on the progress bar
- enableProgressTooltip: true,
- // Enable smooth behavior when hovering over the progress bar
- useSmoothHover: true,
- // If set to true, the Live Broadcast message will be displayed and progress bar will be hidden, no matter if duration is a valid number
- forceLive: false,
- // Position of volume slider
- audioVolume: 'horizontal',
- videoVolume: 'vertical',
- // Activate detection of Pointer events when on the fullscreen mode
- usePluginFullScreen: true,
- // Bypass native capabilities on mobile devices and use the fake-fullscreen mode
- useFakeFullscreen: false,
- // Remove the [cc] button when no <track kind="subtitles"> are present
- hideCaptionsButtonWhenEmpty: true,
- // If true and we only have one track, change captions to toggle button
- toggleCaptionsButtonWhenOnlyOne: false,
- // Default cue line in which to display cues if the cue is set to "auto" (no line entry in VTT).
- // Can be set to false to disable.
- defaultTrackLine: -3,
- // Automatically turn on a <track> element.
- autoplayCaptionLanguage: '',
- // Set the language of the chapters track.
- chaptersLanguage: '',
- // Hide the video player screen reader title so it can be added by the website
- hideScreenReaderTitle: false,
- // Text for accessibility
- tracksText: null,
- chaptersText: null,
- muteText: null,
- unmuteText: null,
- allyVolumeControlText: null,
- fullscreenText: null,
- playText: null,
- pauseText: null,
- });
4.性能:
- // returns true or false
- myPlayer.autoplay
- // returns an object representing the buffered parts of the audio/video
- myPlayer.buffered
- // returns true or false
- myPlayer.controls
- // returns the URL
- myPlayer.currentSrc
- // returns the current playback position in the audio/video
- myPlayer.currentTime
- // returns the length in seconds
- myPlayer.duration
- // returns true or false
- myPlayer.ended
- // returns a MediaError object representing the error state
- myPlayer.error
- // returns true or false
- myPlayer.loop
- // returns true or false
- myPlayer.muted
- // returns true or false
- myPlayer.paused
- // return the current ready state
- myPlayer.readyState
- // returns true or false
- myPlayer.seeking
- // return the current source
- myPlayer.src
- // returns the volume
- myPlayer.volume
5.API方法:
- // enable/disable autoplay
- myPlayer.autoplay(true/false);
- // show/hide controls
- myPlayer.controls(true/false);
- // set the current time
- myPlayer.currentTime(time);
- // enable/disable loop
- myPlayer.loop(true/false);
- // mute/unmute
- myPlayer.muted(true/false);
- // sets the source
- myPlayer.src(url);
- // sets the volume
- myPlayer.volume(volume);
- // reload
- myPlayer.load();
- // play
- myPlayer.play();
- // pause
- myPlayer.pause();
- // stop
- myPlayer.stop();
- // destroy
- myPlayer.remove();
- // determine whether current player can/cannot play a specific media type
- // type is MIME type and each renderer has a whitelist of them
- myPlayer.canPlayType(type);
- // set player's width and height
- myPlayer.setPlayerSize(width, height);
- // set poster
- myPlayer.setPoster(url);
- // mute/unmute the player
- myPlayer.setMuted(muted);
- // set a new time
- myPlayer.setCurrentTime(time);
- // get the current time
- myPlayer.getCurrentTime();
- // set a volume leveal (between 0 and 1)
- myPlayer.setVolume(volume);
- // retrieve the current volume level
- myPlayer.getVolume();
- // set a new URL for the player
- myPlayer.setSrc(src);
- // retrieve the media URL/path
- myPlayer.getSrc();
版本6.0.3(2023-03-29)
版本6.0.2(2023-03-08)
版本6.0.1(2023-02-10)
版本6.0.0(2023-02-07)
v5.1.1 (2023-02-06)
v.1.0版本(2022-09-07)
v5.0.5 (2021-11-05)
v5.0.4 (2021-11-05)
v5.0.3 (2021-11-01)
v5.0.2 (2021-10-19)
v5.0.1 (2021-10-07)
v5.0.0 (2021-09-17)
v4.2.1.7 (2021-07-05)