srcObject
特性为
HTMLMediaElement
interface sets or returns the object which serves as the source of the media associated with the
HTMLMediaElement
.
The object can be a
MediaStream
,
MediaSource
, a
Blob
,或
File
(which inherits from
Blob
).
注意:
As of March 2020, only Safari supports setting objects other than
MediaStream
. Until other browsers catch up, for
MediaSource
,
Blob
and
File
, consider falling back to creating a URL with
URL.createObjectURL()
and assign it to
HTMLMediaElement.src
. See below for an example.
var sourceObject = HTMLMediaElement.srcObject; HTMLMediaElement.srcObject = sourceObject;
A
MediaStream
,
MediaSource
,
Blob
,或
File
object (though see the compatibility table for what is actually supported).
Older versions of the Media Source specification required using
createObjectURL()
to create an object URL then setting
src
to that URL. Now you can just set
srcObject
到
MediaStream
直接。
In this example, a
MediaStream
from a camera is assigned to a newly-created
<video>
元素。
const mediaStream = await navigator.mediaDevices.getUserMedia({video: true});
const video = document.createElement('video');
video.srcObject = mediaStream;
In this example, a new
MediaSource
is assigned to a newly-created
<video>
元素。
const mediaSource = new MediaSource();
const video = document.createElement('video');
video.srcObject = mediaSource;
The examples below support older browser versions that require you to create an object URL and assign it to
src
if
srcObject
isn't supported.
首先,
MediaStream
from a camera is assigned to a newly-created
<video>
element, with fallback for older browsers.
const mediaStream = await navigator.mediaDevices.getUserMedia({video: true});
const video = document.createElement('video');
if ('srcObject' in video) {
video.srcObject = mediaStream;
} else {
// Avoid using this in new browsers, as it is going away.
video.src = URL.createObjectURL(mediaStream);
}
Second, a new
MediaSource
is assigned to a newly-created
<video>
element, with fallback for older browsers and browsers that don't yet support assignment of
MediaSource
直接。
const mediaSource = new MediaSource();
const video = document.createElement('video');
// Older browsers may not have srcObject
if ('srcObject' in video) {
try {
video.srcObject = mediaSource;
} catch (err) {
if (err.name != "TypeError") {
throw err;
}
// Even if they do, they may only support MediaStream
video.src = URL.createObjectURL(mediaSource);
}
} else {
video.src = URL.createObjectURL(mediaSource);
}
| 规范 | 状态 | 注释 |
|---|---|---|
|
HTML 实时标准
The definition of 'srcObject' in that specification. |
实时标准 | 初始定义。 |
| 桌面 | 移动 | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
srcObject
|
Chrome
部分支持
52
|
Edge
部分支持
12
|
Firefox
部分支持
42
|
IE No |
Opera
部分支持
39
|
Safari 11 |
WebView Android
部分支持
52
|
Chrome Android
部分支持
52
|
Firefox Android
部分支持
42
|
Opera Android
部分支持
41
|
Safari iOS 11 |
Samsung Internet Android
部分支持
6.0
|
完整支持
部分支持
不支持
见实现注意事项。
要求使用供应商前缀或不同名称。
HTMLMediaElement
BeforeUnloadEvent
DOMStringMap
ErrorEvent
GlobalEventHandlers
HTMLAnchorElement
HTMLAreaElement
HTMLAudioElement
HTMLBRElement
HTMLBaseElement
HTMLBaseFontElement
HTMLBodyElement
HTMLButtonElement
HTMLCanvasElement
HTMLContentElement
HTMLDListElement
HTMLDataElement
HTMLDataListElement
HTMLDialogElement
HTMLDivElement
HTMLDocument
HTMLElement
HTMLEmbedElement
HTMLFieldSetElement
HTMLFormControlsCollection
HTMLFormElement
HTMLFrameSetElement
HTMLHRElement
HTMLHeadElement
HTMLHeadingElement
HTMLHtmlElement
HTMLIFrameElement
HTMLImageElement
HTMLInputElement
HTMLIsIndexElement
HTMLKeygenElement
HTMLLIElement
HTMLLabelElement
HTMLLegendElement
HTMLLinkElement
HTMLMapElement
HTMLMetaElement
HTMLMeterElement
HTMLModElement
HTMLOListElement
HTMLObjectElement
HTMLOptGroupElement
HTMLOptionElement
HTMLOptionsCollection
HTMLOutputElement
HTMLParagraphElement
HTMLParamElement
HTMLPictureElement
HTMLPreElement
HTMLProgressElement
HTMLQuoteElement
HTMLScriptElement
HTMLSelectElement
HTMLShadowElement
HTMLSourceElement
HTMLSpanElement
HTMLStyleElement
HTMLTableCaptionElement
HTMLTableCellElement
HTMLTableColElement
HTMLTableDataCellElement
HTMLTableElement
HTMLTableHeaderCellElement
HTMLTableRowElement
HTMLTableSectionElement
HTMLTemplateElement
HTMLTextAreaElement
HTMLTimeElement
HTMLTitleElement
HTMLTrackElement
HTMLUListElement
HTMLUnknownElement
HTMLVideoElement
HashChangeEvent
历史
ImageData
定位
MessageChannel
MessageEvent
MessagePort
Navigator
NavigatorGeolocation
NavigatorID
NavigatorLanguage
NavigatorOnLine
NavigatorPlugins
PageTransitionEvent
Plugin
PluginArray
PopStateEvent
PortCollection
PromiseRejectionEvent
RadioNodeList
Transferable
ValidityState
Window
WindowBase64
WindowEventHandlers
WindowTimers