# Consume html5 media element audio in PositionalAudio

**URL:** <https://discourse.threejs.org/t/consume-html5-media-element-audio-in-positionalaudio/27701>\
**Category:** Questions\
**Tags:** audio\
**Created:** [July 1, 2021, 10:58am UTC](https://discourse.threejs.org/t/consume-html5-media-element-audio-in-positionalaudio/27701 "2021-07-01T10:58:35Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![spinlud](https://yyz1.discourse-cdn.com/flex035/user_avatar/discourse.threejs.org/spinlud/32/19261_2.png) [@spinlud](https://discourse.threejs.org/u/spinlud)\
**Post date:** [July 1, 2021, 10:58am UTC](https://discourse.threejs.org/t/consume-html5-media-element-audio-in-positionalaudio/27701/1 "2021-07-01T10:58:36Z")

</div>

Hi guys, I would like to consume audio coming from `<video>` element in a `PositionalAudio` node (so it can be placed in the 3d space). I’ve found that `Audio` node supports a method [setMediaElementSource](https://threejs.org/docs/index.html#api/en/audio/Audio.setMediaElementSource) which works with media elements, the problem is that it is not positional (audio doesn’t change no matter where the listener is). Is there any hack/workaround to make it work with `PositionalAudio` instead?

```javascript
const video = document.getElementById('myVideo');
const listener = new THREE.AudioListener();
camera.add(listener);

const audio = new THREE.Audio(listener); // would like to use PositionalAudio instead
audio.setMediaElementSource(video);

```

---

<div class="post-metadata">

**Author:** ![Mugen87](https://yyz1.discourse-cdn.com/flex035/user_avatar/discourse.threejs.org/mugen87/32/5645_2.png) [@Mugen87](https://discourse.threejs.org/u/Mugen87)\
**Post date:** [July 1, 2021, 1:48pm UTC](https://discourse.threejs.org/t/consume-html5-media-element-audio-in-positionalaudio/27701/2 "2021-07-01T13:48:56Z")

</div>

Can you try it like in this example? [three.js webaudio - orientation](https://threejs.org/examples/webaudio_orientation)

It uses a `PositionalAudio` and also `setMediaElementSource()`.

---

<div class="post-metadata">

**Author:** ![spinlud](https://yyz1.discourse-cdn.com/flex035/user_avatar/discourse.threejs.org/spinlud/32/19261_2.png) [@spinlud](https://discourse.threejs.org/u/spinlud)\
**Post date:** [July 1, 2021, 2:24pm UTC](https://discourse.threejs.org/t/consume-html5-media-element-audio-in-positionalaudio/27701/3 "2021-07-01T14:24:52Z")

</div>

Works perfectly! I didn’t notice that [PositionalAudio](https://github.com/mrdoob/three.js/blob/e8877dfb85ae017f53ef8d91237909bc162f524b/src/audio/PositionalAudio.js) extends `Audio` class, so it inherits all the functionalities. Awesome, thanks for the help!
