Recherche avancée

Médias (91)

Autres articles (50)

  • Pas question de marché, de cloud etc...

    10 avril 2011

    Le vocabulaire utilisé sur ce site essaie d’éviter toute référence à la mode qui fleurit allègrement
    sur le web 2.0 et dans les entreprises qui en vivent.
    Vous êtes donc invité à bannir l’utilisation des termes "Brand", "Cloud", "Marché" etc...
    Notre motivation est avant tout de créer un outil simple, accessible à pour tout le monde, favorisant
    le partage de créations sur Internet et permettant aux auteurs de garder une autonomie optimale.
    Aucun "contrat Gold ou Premium" n’est donc prévu, aucun (...)

  • HTML5 audio and video support

    13 avril 2011, par

    MediaSPIP uses HTML5 video and audio tags to play multimedia files, taking advantage of the latest W3C innovations supported by modern browsers.
    The MediaSPIP player used has been created specifically for MediaSPIP and can be easily adapted to fit in with a specific theme.
    For older browsers the Flowplayer flash fallback is used.
    MediaSPIP allows for media playback on major mobile platforms with the above (...)

  • Support audio et vidéo HTML5

    10 avril 2011

    MediaSPIP utilise les balises HTML5 video et audio pour la lecture de documents multimedia en profitant des dernières innovations du W3C supportées par les navigateurs modernes.
    Pour les navigateurs plus anciens, le lecteur flash Flowplayer est utilisé.
    Le lecteur HTML5 utilisé a été spécifiquement créé pour MediaSPIP : il est complètement modifiable graphiquement pour correspondre à un thème choisi.
    Ces technologies permettent de distribuer vidéo et son à la fois sur des ordinateurs conventionnels (...)

Sur d’autres sites (7714)

  • Revision 77174 : Identifiant d’une page : nombre de caractères augmenté à 255 au lieu de ...

    12 octobre 2013, par tcharlss@… — Log

    Identifiant d’une page : nombre de caractères augmenté à 255 au lieu de 40.
    On en profite pour passer la fonction d’installation et de mise à jour du plugin en mode SPIP 3.

  • Revision 38657 : Il est plus intéressant d’enregistrer le nombre de secondes plutot qu’une ...

    7 juin 2010, par kent1@… — Log

    Il est plus intéressant d’enregistrer le nombre de secondes plutot qu’une durée déjà formatée

  • Anyway to get current playtime of a song ?

    2 décembre 2019, par Blue Lightning

    So this is the basic voice that I’m currently using to play music through my bot. I’m streaming the audio (using the stream async function) opposed to downloading it local. Anyway I can get the current playtime of the song that is being played ?

    So whenever someone plays a song, they can, whenever they want, see how much of the song they played through already.

    import asyncio

    import discord
    import youtube_dl

    from discord.ext import commands

    # Suppress noise about console usage from errors
    youtube_dl.utils.bug_reports_message = lambda: ''


    ytdl_format_options = {
       'format': 'bestaudio/best',
       'outtmpl': '%(extractor)s-%(id)s-%(title)s.%(ext)s',
       'restrictfilenames': True,
       'noplaylist': True,
       'nocheckcertificate': True,
       'ignoreerrors': False,
       'logtostderr': False,
       'quiet': True,
       'no_warnings': True,
       'default_search': 'auto',
       'source_address': '0.0.0.0'
    }

    ffmpeg_options = {
       'options': '-vn'
    }

    ytdl = youtube_dl.YoutubeDL(ytdl_format_options)


    class YTDLSource(discord.PCMVolumeTransformer):
       def __init__(self, source, *, data, volume=0.5):
           super().__init__(source, volume)

           self.data = data

           self.title = data.get('title')
           self.url = data.get('url')

       @classmethod
       async def from_url(cls, url, *, loop=None, stream=False):
           loop = loop or asyncio.get_event_loop()
           data = await loop.run_in_executor(None, lambda: ytdl.extract_info(url, download=not stream))

           if 'entries' in data:
               # take first item from a playlist
               data = data['entries'][0]

           filename = data['url'] if stream else ytdl.prepare_filename(data)
           return cls(discord.FFmpegPCMAudio(filename, **ffmpeg_options), data=data)


    class Music(commands.Cog):
       def __init__(self, bot):
           self.bot = bot

       @commands.command()
       async def join(self, ctx, *, channel: discord.VoiceChannel):
           """Joins a voice channel"""

           if ctx.voice_client is not None:
               return await ctx.voice_client.move_to(channel)

           await channel.connect()

       @commands.command()
       async def stream(self, ctx, *, url):
           """Streams from a url (same as yt, but doesn't predownload)"""

           async with ctx.typing():
               player = await YTDLSource.from_url(url, loop=self.bot.loop, stream=True)
               ctx.voice_client.play(player, after=lambda e: print('Player error: %s' % e) if e else None)

           await ctx.send('Now playing: {}'.format(player.title))

       @commands.command()
       async def volume(self, ctx, volume: int):
           """Changes the player's volume"""

           if ctx.voice_client is None:
               return await ctx.send("Not connected to a voice channel.")

           ctx.voice_client.source.volume = volume / 100
           await ctx.send("Changed volume to {}%".format(volume))

       @commands.command()
       async def stop(self, ctx):
           """Stops and disconnects the bot from voice"""

           await ctx.voice_client.disconnect()

       @play.before_invoke
       @yt.before_invoke
       @stream.before_invoke
       async def ensure_voice(self, ctx):
           if ctx.voice_client is None:
               if ctx.author.voice:
                   await ctx.author.voice.channel.connect()
               else:
                   await ctx.send("You are not connected to a voice channel.")
                   raise commands.CommandError("Author not connected to a voice channel.")
           elif ctx.voice_client.is_playing():
               ctx.voice_client.stop()

    bot = commands.Bot(command_prefix=commands.when_mentioned_or("!"),
                      description='Relatively simple music bot example')

    @bot.event
    async def on_ready():
       print('Logged in as {0} ({0.id})'.format(bot.user))
       print('------')

    bot.add_cog(Music(bot))
    bot.run('token')