Struct web_audio_api::media::MediaElement[][src]

pub struct MediaElement<S> { /* fields omitted */ }

Wrapper for MediaStreams, to control playback.

Example

use web_audio_api::SampleRate;
use web_audio_api::context::{AudioContext, AsBaseAudioContext};
use web_audio_api::buffer::{AudioBuffer, ChannelData};
use web_audio_api::media::MediaElement;
use crate::web_audio_api::node::AudioControllableSourceNode;

// create a new buffer: 20 samples of silence
let silence = AudioBuffer::from_channels(vec![ChannelData::from(vec![0.; 20])], SampleRate(44_100));

// create a sequence of this buffer
let sequence = std::iter::repeat(silence).take(5);

// the sequence should actually yield `Result<AudioBuffer, _>`s
let media = sequence.map(|b| Ok(b));

// media is now a proper `MediaStream`, we can wrap it in a `MediaElement`
let mut element = MediaElement::new(media);
element.set_loop(true);

for buf in element.take(3) {
    assert_eq!(
        buf.unwrap().channel_data(0).unwrap(),
        &ChannelData::from(vec![0.; 20])
    )
}

Implementations

impl<S: MediaStream> MediaElement<S>[src]

pub fn new(input: S) -> Self[src]

pub fn seek(&mut self, ts: f64)[src]

Trait Implementations

impl<S> AudioControllableSourceNode for MediaElement<S>[src]

impl<S> AudioScheduledSourceNode for MediaElement<S>[src]

impl<S: MediaStream> Iterator for MediaElement<S>[src]

type Item = Result<AudioBuffer, Box<dyn Error + Send>>

The type of the elements being iterated over.

Auto Trait Implementations

impl<S> RefUnwindSafe for MediaElement<S> where
    S: RefUnwindSafe

impl<S> Send for MediaElement<S> where
    S: Send

impl<S> Sync for MediaElement<S> where
    S: Sync

impl<S> Unpin for MediaElement<S> where
    S: Unpin

impl<S> UnwindSafe for MediaElement<S> where
    S: UnwindSafe

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> From<T> for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<I> IntoIterator for I where
    I: Iterator
[src]

type Item = <I as Iterator>::Item

The type of the elements being iterated over.

type IntoIter = I

Which kind of iterator are we turning this into?

impl<M> MediaStream for M where
    M: 'static + Iterator<Item = Result<AudioBuffer, Box<dyn Error + 'static + Send, Global>>> + Send
[src]

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.