Struct serenity::voice::Audio[][src]

pub struct Audio {
    pub playing: bool,
    pub volume: f32,
    pub finished: bool,
    pub source: Box<AudioSource>,
    pub position: Duration,
    pub position_modified: bool,
}

Control object for audio playback.

Accessed by both commands and the playback code -- as such, access is always guarded. In particular, you should expect to receive a LockedAudio when calling Handler::play_returning or Handler::play_only.

Example

This example is not tested
use serenity::voice::{Handler, LockedAudio, ffmpeg};

let handler: Handler = /* ... */;
let source = ffmpeg("../audio/my-favourite-song.mp3")?;
let safe_audio: LockedAudio = handler.play_only();
{
    let audio_lock = safe_audio_control.clone();
    let mut audio = audio_lock.lock();

    audio.volume(0.5);
}

Fields

Whether or not this sound is currently playing.

Can be controlled with play or pause if chaining is desired.

The desired volume for playback.

Sensible values fall between 0.0 and 1.0. Can be controlled with volume if chaining is desired.

Whether or not the sound has finished, or reached the end of its stream.

Read-only for now.

Underlying data access object.

Calling code is not expected to use this.

The current position for playback.

Consider the position fields read-only for now.

Methods

impl Audio
[src]

Important traits for &'a mut R

Sets playing to true in a manner that allows method chaining.

Important traits for &'a mut R

Sets playing to false in a manner that allows method chaining.

Important traits for &'a mut R

Sets volume in a manner that allows method chaining.

Important traits for &'a mut R

Change the position in the stream for subsequent playback.

Currently a No-op.

Auto Trait Implementations

impl Send for Audio

impl !Sync for Audio