未验证 提交 0841f193 编写于 作者: M Mr.doob 提交者: GitHub

Merge pull request #17664 from mrdoob/mrdoob-patch-1

Audio: Add setLoopStart() and setLoopEnd()
......@@ -188,6 +188,16 @@
(whether playback should loop).
</p>
<h3>[method:Audio setLoopStart]( [param:Float value] )</h3>
<p>
Set [link:https://developer.mozilla.org/en-US/docs/Web/API/AudioBufferSourceNode/loopStart source.loopStart] to *value*.
</p>
<h3>[method:Audio setLoopEnd]( [param:Float value] )</h3>
<p>
Set [link:https://developer.mozilla.org/en-US/docs/Web/API/AudioBufferSourceNode/loopEnd source.loopEnd] to *value*.
</p>
<h3>[method:Audio setMediaElementSource]( mediaElement )</h3>
<p>
Applies the given object of type [link:https://developer.mozilla.org/en-US/docs/Web/API/HTMLMediaElement HTMLMediaElement] as the source of this audio.<br />
......
......@@ -184,6 +184,16 @@
(是否循环播放).
</p>
<h3>[method:Audio setLoopStart]( [param:Float value] )</h3>
<p>
Set [link:https://developer.mozilla.org/en-US/docs/Web/API/AudioBufferSourceNode/loopStart source.loopStart] to *value*.
</p>
<h3>[method:Audio setLoopEnd]( [param:Float value] )</h3>
<p>
Set [link:https://developer.mozilla.org/en-US/docs/Web/API/AudioBufferSourceNode/loopEnd source.loopEnd] to *value*.
</p>
<h3>[method:Audio setMediaElementSource]( mediaElement )</h3>
<p>
应用[link:https://developer.mozilla.org/en-US/docs/Web/API/HTMLMediaElement HTMLMediaElement]类型对象作为音源.<br />
......
......@@ -45,7 +45,9 @@ export class Audio extends Object3D {
setPlaybackRate( value: number ): this;
getPlaybackRate(): number;
getLoop(): boolean;
setLoop( value: boolean ): void;
setLoop( value: boolean ): this;
setLoopStart( value: number ): this;
setLoopEnd( value: number ): this;
getVolume(): number;
setVolume( value: number ): this;
/**
......
......@@ -22,6 +22,8 @@ function Audio( listener ) {
this.buffer = null;
this.detune = 0;
this.loop = false;
this.loopStart = 0;
this.loopEnd = 0;
this.startTime = 0;
this.offset = 0;
this.duration = undefined;
......@@ -108,6 +110,8 @@ Audio.prototype = Object.assign( Object.create( Object3D.prototype ), {
source.buffer = this.buffer;
source.loop = this.loop;
source.loopStart = this.loopStart;
source.loopEnd = this.loopEnd;
source.onended = this.onEnded.bind( this );
this.startTime = this.context.currentTime;
source.start( this.startTime, this.offset, this.duration );
......@@ -338,6 +342,22 @@ Audio.prototype = Object.assign( Object.create( Object3D.prototype ), {
},
setLoopStart: function ( value ) {
this.loopStart = value;
return this;
},
setLoopEnd: function ( value ) {
this.loopEnd = value;
return this;
},
getVolume: function () {
return this.gain.gain.value;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册