示例#1
0
    def setUp(self):
        self.player = Player()

        self._get_audio_driver_patcher = mock.patch(
            'pyglet.media.player.get_audio_driver')
        self.mock_get_audio_driver = self._get_audio_driver_patcher.start()
        self.mock_audio_driver = self.mock_get_audio_driver.return_value
        self.mock_audio_driver_player = self.mock_audio_driver.create_audio_player.return_value

        self._get_silent_audio_driver_patcher = mock.patch(
            'pyglet.media.player.get_silent_audio_driver')
        self.mock_get_silent_audio_driver = self._get_silent_audio_driver_patcher.start(
        )
        self.mock_silent_audio_driver = self.mock_get_silent_audio_driver.return_value
        self.mock_silent_audio_driver_player = self.mock_silent_audio_driver.create_audio_player.return_value

        self._clock_patcher = mock.patch('pyglet.clock')
        self.mock_clock = self._clock_patcher.start()

        self._texture_patcher = mock.patch('pyglet.image.Texture.create')
        self.mock_texture_create = self._texture_patcher.start()
        self.mock_texture = self.mock_texture_create.return_value
        # Need to do this as side_effect instead of return_value, or reset_mock will recurse
        self.mock_texture.get_transform.side_effect = lambda flip_y: self.mock_texture

        self.current_playing_source_group = None
示例#2
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)
def test_pause_queue(event_loop):
    """Test the queue is not played when player is paused."""
    source = procedural.WhiteNoise(1.0)
    player = Player()
    player.pause()
    player.queue(source)

    # Run for the duration of the sound
    event_loop.run_event_loop(1.0)

    event_loop.ask_question('Did you not hear any sound?', screenshot=False)
示例#4
0
def test_pause_queue(event_loop):
    """Test the queue is not played when player is paused."""
    source = synthesis.WhiteNoise(1.0)
    player = Player()
    player.pause()
    player.queue(source)

    # Run for the duration of the sound
    event_loop.run_event_loop(1.0)

    event_loop.ask_question('Is it silent?', screenshot=False)
示例#5
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)
示例#6
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)
示例#7
0
    def play(self):
        """Play the source.

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

        :rtype: `Player`
        """
        from pyglet.media.player import Player  # XXX Nasty circular dependency
        player = Player()
        player.queue(self)
        player.play()
        return player
示例#8
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)
示例#9
0
def test_pause_sound(event_loop):
    """Test that a playing sound can be paused."""
    source = procedural.WhiteNoise(60.0)
    player = Player()
    player.queue(source)
    player.play()

    event_loop.run_event_loop(1.0)
    player.pause()
    event_loop.ask_question('Did you hear white noise for 1 second and is it now silent?',
                            screenshot=False)

    player.play()
    event_loop.ask_question('Do you hear white noise again?', screenshot=False)

    player.delete()
    event_loop.ask_question('Is it silent again?', screenshot=False)
示例#10
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)
示例#11
0
    def __init__(self):
        """
        Initializer
        """
        super().__init__()

        # Set the working directory (where we expect to find files) to the same
        # directory this .py file is in. You can leave this out of your own
        # code, but it is needed to easily run the examples using "python -m"
        # as mentioned at the top of this program.
        file_path = os.path.dirname(os.path.abspath(__file__))
        os.chdir(file_path)
    
        # Sprite lists
        self.player = Player()
        self.coin_list = None
        self.wall_list = Solid_blocks().wall_list
        self.player_list = self.player.player_list
        self.player_sprite = self.player.player_sprite
        self.player_health = self.player.player_health
        self.brick_list = Destroyable_blocks().random_wall_list
        self.virus = Virus_cells()
        self.enemies = Virus_cells().virus_cells
        self.mask = Mask()
        self.mask_list = Mask().mask_list
        self.power = None
        self.walls_and_bricks = None
        self.explosions_list = None
        self.score = 0 
        self.mask_count = Mask().mask_count
        self.physics_engine = None
        self.volume = 0.4
        self.background = None
        self.background_music = None
        self.width = constants.SCREEN_WIDTH
        self.height = constants.SCREEN_HEIGHT
        self.bullet_list = None
        self.shotgun = False
        self.mouse_clicks = 0 
        self.play_music = None
示例#12
0
    def play_by_id(self, id: str):
        file_ = self.sources[id]
        source = file_.source
        player = Player()

        def play(source, player):
            if source.is_queued:
                source = pyglet.media.load(file_.file_name)
                source.play()
            else:
                player.queue(source)
                player.play()
            source._players.append(self.player)

            def _on_player_eos():
                source._players.remove(self.player)
                player.on_player_eos = None
                player.delete()

            player.on_player_eos = _on_player_eos

        play(source, player)
示例#13
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
示例#14
0
 def __init__(self):
     self.sources = {}
     self.player = Player()