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
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)
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)
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)
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)
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
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)
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)
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)
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
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)
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
def __init__(self): self.sources = {} self.player = Player()