예제 #1
0
def test_queue_play(event_loop):
    """Test putting a single sound on the queue and then starting the player."""
    source = procedural.WhiteNoise(1.0)
    player = Player()
    player.on_player_eos = event_loop.interrupt_event_loop
    player.queue(source)
    player.play()
    event_loop.run_event_loop()

    event_loop.ask_question('Did you hear white noise for 1 second?', screenshot=False)
예제 #2
0
def test_play_queue(event_loop):
    """Test playing a single sound on the queue."""
    source = synthesis.WhiteNoise(1.0)
    player = Player()
    player.on_player_eos = event_loop.interrupt_event_loop
    player.play()
    player.queue(source)
    event_loop.run_event_loop()

    event_loop.ask_question('Did you hear white noise for 1 second?',
                            screenshot=False)
예제 #3
0
def test_static_source_wrapping(event_loop):
    """Test that a sound can be recursively wrappend inside a static source."""
    source = procedural.WhiteNoise(1.0)
    source = StaticSource(source)
    source = StaticSource(source)
    player = Player()
    player.on_player_eos = event_loop.interrupt_event_loop
    player.queue(source)
    player.play()

    event_loop.run_event_loop()
    event_loop.ask_question('Did you hear white noise for 1 seconds?', screenshot=False)
예제 #4
0
def test_next_on_end_of_stream(event_loop):
    """Test that multiple items on the queue are played after each other."""
    source1 = procedural.WhiteNoise(1.0)
    source2 = procedural.Sine(1.0)
    player = Player()
    player.on_player_eos = event_loop.interrupt_event_loop
    player.queue(source1)
    player.queue(source2)
    player.play()

    event_loop.run_event_loop()
    event_loop.ask_question('Did you hear white noise for 1 second and then a tone at 440 Hz'
                            '(A above middle C)?', screenshot=False)
예제 #5
0
def test_playback(event_loop, test_data):
    """Test playing back sound files."""
    player = Player()
    player.on_player_eos = event_loop.interrupt_event_loop
    player.play()

    sound = test_data.get_file('media', 'alert.wav')
    source = pyglet.media.load(sound, streaming=False)
    player.queue(source)
    event_loop.run_event_loop()

    event_loop.ask_question('Did you hear the alert sound playing?', screenshot=False)

    sound2 = test_data.get_file('media', 'receive.wav')
    source2 = pyglet.media.load(sound2, streaming=False)
    player.queue(source2)
    player.play()
    event_loop.run_event_loop()

    event_loop.ask_question('Did you hear the receive sound playing?', screenshot=False)
예제 #6
0
    def play(self):
        """Play the source.

        This is a convenience method which creates a Player for
        this source and plays it immediately.

        Returns:
            :class:`.Player`
        """
        from pyglet.media.player import Player  # XXX Nasty circular dependency
        player = Player()
        player.queue(self)
        player.play()
        Source._players.append(player)

        def _on_player_eos():
            Source._players.remove(player)
            # There is a closure on player. To get the refcount to 0,
            # we need to delete this function.
            player.on_player_eos = None

        player.on_player_eos = _on_player_eos
        return player