Playing back audio

In this section, we'll show how you can embed an audio player into the interface, and how you can make sure that the user listened to your file.

Note. You can add media files from your own server, Yandex Disk, or a cloud storage like Yandex Cloud, Google Cloud, or Amazon AWS.

Add an audio player to the interface

To insert an audio file into the task interface, add the view.audio component to the template. In the url property, specify a direct link to the file (we recommend that you use the MP3 format):
{
  "type": "view.audio",
  "url": "http://example.com/audio.mp3"
}

If you pass a link to an audio file in the input data, use the data.input component in the url property.

To loop audio playback automatically, put true in the loop property.

View example in the sandbox.

Make sure that the user listened to the audio

To make sure that the user played back the audio and at least started listening to it, use the condition.played component in the validation property.
{
  "type": "view.audio",
  "url": "http://example.com/audio.mp3",
  "validation": {
    "type": "condition.played"
  }
}

View example in the sandbox.

Record audio

To allow users to upload their audio files, use the field.audio component.

On the website, field.audio allows users to upload audio files, and in the app, it opens the sound recorder.

{
  "type": "field.audio",
  "data": {
    "type": "data.output",
    "path": "path",
  }
}

View example in the sandbox.