Recherche avancée

Médias (91)

Autres articles (94)

  • MediaSPIP 0.1 Beta version

    25 avril 2011, par

    MediaSPIP 0.1 beta is the first version of MediaSPIP proclaimed as "usable".
    The zip file provided here only contains the sources of MediaSPIP in its standalone version.
    To get a working installation, you must manually install all-software dependencies on the server.
    If you want to use this archive for an installation in "farm mode", you will also need to proceed to other manual (...)

  • 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 (...)

  • ANNEXE : Les plugins utilisés spécifiquement pour la ferme

    5 mars 2010, par

    Le site central/maître de la ferme a besoin d’utiliser plusieurs plugins supplémentaires vis à vis des canaux pour son bon fonctionnement. le plugin Gestion de la mutualisation ; le plugin inscription3 pour gérer les inscriptions et les demandes de création d’instance de mutualisation dès l’inscription des utilisateurs ; le plugin verifier qui fournit une API de vérification des champs (utilisé par inscription3) ; le plugin champs extras v2 nécessité par inscription3 (...)

Sur d’autres sites (8299)

  • doc : issue tracking : explain the term issue

    31 août 2011, par Alexander Strasser

    doc : issue tracking : explain the term issue

  • avcodec/jpeg2000 : Move L band scaling from the 9/7f wavelet to quantization stage

    22 juin 2015, par Michael Niedermayer
    avcodec/jpeg2000 : Move L band scaling from the 9/7f wavelet to quantization stage
    

    This reduces the number of operations
    Its not done for 9/7i as that would overflow thanks to JPEG2000 allowing
    32 decomposition levels

    Signed-off-by : Michael Niedermayer <michaelni@gmx.at>

    • [DH] libavcodec/jpeg2000.c
    • [DH] libavcodec/jpeg2000dwt.c
  • 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')