Skip to main content

Playback Control

This guide provides instructions on how to control the playback of BlendVision iframe player, enabling interaction between the player and your website.

Step 1: Define a Unique ID in the iframe Code

Include id=”IFRAME_ID” in your iframe code, replacing IFRAME_ID with a unique ID of your choice.

<iframe id="IFRAME_ID" src="https://showroom.one.blendvision.com/embed?token={token}" width="640" height="360" allow="autoplay; encrypted-media; clipboard-write" frameborder="0" allowfullscreen></iframe>

<script>
  window.addEventListener('message', event => {
    if (event.data.command === 'ping') {
      Array.from(document.querySelectorAll('iframe')).forEach(iframe =>
        iframe?.contentWindow?.postMessage({ command: 'pong' }, '*')
      );
    }
  });
</script>

Step 2: Control Playback Using Post Message

Utilize the following post message commands to control your iframe player.

Play

const bvOnePage = docuement.querySelector('iframe#IFRAME_ID')

bvOnePage.contentWindow.postMessage(
JSON.stringify({event: 'command', func: 'play', args: []}),
'*'
)

Pause

const bvOnePage = docuement.querySelector('iframe#IFRAME_ID')

bvOnePage.contentWindow.postMessage(
JSON.stringify({event: 'command', func: 'pause', args: []}),
'*'
)

Seek to a Target Time

Pass the target time in seconds to the args array.

const bvOnePage = docuement.querySelector('iframe#IFRAME_ID')

bvOnePage.contentWindow.postMessage(
JSON.stringify({event: 'command', func: 'seek', args: [12]}), // seek to 12sec.
'*'
)

Set Volume

Pass the volume level from 0 to 1 with two decimal places (e.g. 0.35 for 35% volume) to the args array.

const bvOnePage = docuement.querySelector('iframe#IFRAME_ID')

bvOnePage.contentWindow.postMessage(
JSON.stringify({event: 'command', func: 'set-volume', args: [1]}), // set to the maximum volume
'*'
)

Speed Up

const bvOnePage = docuement.querySelector('iframe#IFRAME_ID')

bvOnePage.contentWindow.postMessage(
JSON.stringify({event: 'command', func: 'speed-up', args: []}),
'*'
)

Slow Down

const bvOnePage = docuement.querySelector('iframe#IFRAME_ID')

bvOnePage.contentWindow.postMessage(
JSON.stringify({event: 'command', func: 'slow-down', args: []}),
'*'
)

Set Speed

Pass the following volume levels to the args array: 0.25, 0.5, 0.75, 1, 1.25, 1.5, 1.75, 2

const bvOnePage = docuement.querySelector('iframe#IFRAME_ID')

bvOnePage.contentWindow.postMessage(
JSON.stringify({event: 'command', func: 'set-speed', args: [0.25]}),
'*'
)