
Recherche avancée
Médias (1)
-
Rennes Emotion Map 2010-11
19 octobre 2011, par
Mis à jour : Juillet 2013
Langue : français
Type : Texte
Autres articles (28)
-
Publier sur MédiaSpip
13 juin 2013Puis-je poster des contenus à partir d’une tablette Ipad ?
Oui, si votre Médiaspip installé est à la version 0.2 ou supérieure. Contacter au besoin l’administrateur de votre MédiaSpip pour le savoir -
Création définitive du canal
12 mars 2010, parLorsque votre demande est validée, vous pouvez alors procéder à la création proprement dite du canal. Chaque canal est un site à part entière placé sous votre responsabilité. Les administrateurs de la plateforme n’y ont aucun accès.
A la validation, vous recevez un email vous invitant donc à créer votre canal.
Pour ce faire il vous suffit de vous rendre à son adresse, dans notre exemple "http://votre_sous_domaine.mediaspip.net".
A ce moment là un mot de passe vous est demandé, il vous suffit d’y (...) -
Les tâches Cron régulières de la ferme
1er décembre 2010, parLa gestion de la ferme passe par l’exécution à intervalle régulier de plusieurs tâches répétitives dites Cron.
Le super Cron (gestion_mutu_super_cron)
Cette tâche, planifiée chaque minute, a pour simple effet d’appeler le Cron de l’ensemble des instances de la mutualisation régulièrement. Couplée avec un Cron système sur le site central de la mutualisation, cela permet de simplement générer des visites régulières sur les différents sites et éviter que les tâches des sites peu visités soient trop (...)
Sur d’autres sites (3367)
-
App crashes on Google TV when playing MP4 videos
14 avril 2023, par fabI am having problems with an Android app that was developed for me. The issue occurs when playing MP4 videos ; the app plays them correctly, but at some point, the app crashes and exits. I have been reviewing errors using Android Studio, and the only error that appears is the following :


2023-04-14 00:45:45.846 7221-7650 SurfaceUtils com.app.X D connecting to surface 0xbf0d2808, reason connectToSurface(reconnect) 2023-04-14 00:45:45.848 7221-7654 ACodec com.app.X E [OMX.amlogic.avc.decoder.awesome2] setPortMode on output to DynamicANWBuffer failed w/ err -2147483648 2023-04-14 00:45:45.855 7221-7334 com.app.X com.app.X I get_buffer_dataspace_setting get_metadata return 0 dataspace:268500992 2023-04-14 00:45:45.875 7221-7334 NdkImageReader com.app.X D acquireImageLocked: Overriding buffer format YUV_420_888 to 0x11. 2023-04-14 00:45:45.877 7221-7334 com.app.X com.app.X I get_buffer_dataspace_setting get_metadata return 0 dataspace:268500992 2023-04-14 00:45:45.887 7221-7280 MediaCodec com.app.X D keep callback message for reclaim 2023-04-14 00:45:45.896 7221-7334 com.app.X com.app.X I get_buffer_dataspace_setting get_metadata return 0 dataspace:268500992 2023-04-14 00:45:45.914 7221-7334 com.app.X com.app.X I get_buffer_dataspace_setting get_metadata return 0 dataspace:268500992 2023-04-14 00:45:45.915 7221-7654 SurfaceUtils com.app.X D disconnecting from surface 0xbf0d2808, reason setNativeWindowSizeFormatAndUsage 2023-04-14 00:45:45.915 7221-7654 SurfaceUtils com.app.X D connecting to surface 0xbf0d2808, reason setNativeWindowSizeFormatAndUsage 2023-04-14 00:45:45.915 7221-7654 SurfaceUtils com.app.X D set up nativeWindow 0xbf0d2808 for 1920x1080, color 0x11, rotation 0, usage 0x402b00 2023-04-14 00:45:45.915 7221-7654 ACodec com.app.X W [OMX.amlogic.avc.decoder.awesome2] setting nBufferCountActual to 9 failed: -1010 2023-04-14 00:45:45.922 7221-7654 ion com.app.X E ioctl c0084905 failed with code -1: Invalid argument 2023-04-14 00:45:45.928 7221-7654 ion com.app.X E ioctl c0084905 failed with code -1: Invalid argument 2023-04-14 00:45:45.943 7221-7334 com.app.X com.app.X I get_buffer_dataspace_setting get_metadata return 0 dataspace:268500992 2023-04-14 00:45:45.954 7221-7654 ion com.app.X E ioctl c0084905 failed with code -1: Invalid argument 2023-04-14 00:45:45.960 7221-7654 ion com.app.X E ioctl c0084905 failed with code -1: Invalid argument 2023-04-14 00:45:45.962 7221-7654 ion com.app.X E ioctl c0084905 failed with code -1: Invalid argument 2023-04-14 00:45:45.969 7221-7654 ion com.app.X E ioctl c0084905 failed with code -1: Invalid argument 2023-04-14 00:45:45.979 7221-7654 ion com.app.X E ioctl c0084905 failed with code -1: Invalid argument 2023-04-14 00:45:45.986 7221-7654 ion com.app.X E ioctl c0084905 failed with code -1: Invalid argument


One clarification is that the app is built with IONIC and Angular.


The FFMPEG code that converts the video in golang is as follows :


func ConvertVideoFile(inputFileName, outputFileName string) error { err := ffmpeg_go.Input(inputFileName). Filter("scale", ffmpeg_go.Args{"800:600"}). Output(outputFileName, ffmpeg_go.KwArgs{ "c:v": "libx264", "profile:v": "high", "level": "3.1", "pix_fmt": "yuv420p", "preset": "medium", "crf": "23", "b:v": "782k", "r": "25", "c:a": "aac", "b:a": "2k", "ar": "48000", "movflags": "+faststart", "max_muxing_queue_size": "1024", }, ). OverWriteOutput().ErrorToStdOut().Run() return err }


Remove this error 2023-04-14 00:45:45.848 7221-7654 ACodec com.app.X E [OMX.amlogic.avc.decoder.awesome2


-
Evolution #4471 : singulier_ou_pluriel pour l’arabe
1er juin 2020, par George KandalaftCorrection :
- <span class="CodeRay"><span class="comment">/**
- * Afficher un message "un truc"/("deux trucs" pour l'arabe)/"N trucs"
- * Les items sont à indiquer comme pour la fonction _T() sous la forme :
- * "module:chaine"
- *
- * @param int $nb : le nombre
- * @param string $chaine_un : l'item de langue si $nb vaut un (ou $nb > 10 pour l'arabe)
- * @param string $chaine_plusieurs : l'item de lanque si $nb > 1 ($nb est compris entre 3 et 10 pour l'arabe)
- * @param string $var : La variable à remplacer par $nb dans l'item de langue (facultatif, défaut "nb")
- * @param array $vars : Les autres variables nécessaires aux chaines de langues (facultatif)
- * @return string : la chaine de langue finale en utilisant la fonction _T()
- */</span>
- <span class="keyword">function</span> <span class="function">ar_singulier_ou_pluriel</span>(<span class="local-variable">$nb</span>, <span class="local-variable">$chaine_un</span>, <span class="local-variable">$chaine_plusieurs</span>, <span class="local-variable">$var</span> = <span class="string"><span class="delimiter">'</span><span class="content">nb</span><span class="delimiter">'</span></span>, <span class="local-variable">$vars</span> = <span class="predefined">array</span>()) {
- <span class="keyword">if</span> (!<span class="local-variable">$nb</span> = <span class="predefined">intval</span>(<span class="local-variable">$nb</span>)) {
- <span class="keyword">return</span> <span class="string"><span class="delimiter">'</span><span class="delimiter">'</span></span>;
- }
- <span class="keyword">if</span> (!<span class="predefined">is_array</span>(<span class="local-variable">$vars</span>)) {
- <span class="keyword">return</span> <span class="string"><span class="delimiter">'</span><span class="delimiter">'</span></span>;
- }
- <span class="local-variable">$vars</span>[<span class="local-variable">$var</span>] = <span class="local-variable">$nb</span>;
- <span class="keyword">if</span> (<span class="predefined">$GLOBALS</span>[<span class="string"><span class="delimiter">'</span><span class="content">spip_lang</span><span class="delimiter">'</span></span>] == <span class="string"><span class="delimiter">'</span><span class="content">ar</span><span class="delimiter">'</span></span>) {
- <span class="local-variable">$fem</span> = <span class="predefined">substr</span>(_T(<span class="local-variable">$chaine_un</span>), -<span class="integer">2</span>);
- <span class="keyword">switch</span> (<span class="predefined-constant">true</span>) {
- <span class="keyword">case</span> (<span class="local-variable">$nb</span> == <span class="integer">1</span>):
- <span class="keyword">if</span> (<span class="local-variable">$fem</span> == <span class="string"><span class="delimiter">'</span><span class="content">ة</span><span class="delimiter">'</span></span>) {
- <span class="local-variable">$un</span> = _T(<span class="local-variable">$chaine_un</span>) . <span class="string"><span class="delimiter">'</span><span class="content"> واحدة</span><span class="delimiter">'</span></span>;
- } <span class="keyword">else</span> {
- <span class="local-variable">$un</span> = _T(<span class="local-variable">$chaine_un</span>) . <span class="string"><span class="delimiter">'</span><span class="content"> واحد</span><span class="delimiter">'</span></span>;
- }
- <span class="keyword">return</span> <span class="local-variable">$un</span>;
- <span class="keyword">break</span>;
- <span class="keyword">case</span> (<span class="local-variable">$nb</span> == <span class="integer">2</span>):
- <span class="keyword">if</span> (<span class="local-variable">$fem</span> == <span class="string"><span class="delimiter">'</span><span class="content">ة</span><span class="delimiter">'</span></span>) {
- <span class="local-variable">$deux</span> = <span class="predefined">rtrim</span>(_T(<span class="local-variable">$chaine_un</span>), <span class="local-variable">$fem</span>) . <span class="string"><span class="delimiter">'</span><span class="content">تان</span><span class="delimiter">'</span></span>;
- } <span class="keyword">else</span> {
- <span class="local-variable">$deux</span> = _T(<span class="local-variable">$chaine_un</span>) . <span class="string"><span class="delimiter">'</span><span class="content">ان</span><span class="delimiter">'</span></span>;
- }
- <span class="keyword">return</span> <span class="local-variable">$deux</span>;
- <span class="keyword">break</span>;
- <span class="keyword">case</span> (<span class="local-variable">$nb</span> ><span class="integer">2</span> && <span class="local-variable">$nb</span> < <span class="integer">11</span>):
- <span class="keyword">return</span> _T(<span class="local-variable">$chaine_plusieurs</span>, <span class="local-variable">$vars</span>);
- <span class="keyword">break</span>;
- <span class="keyword">default</span>:
- <span class="local-variable">$chaine_un</span> = <span class="local-variable">$nb</span> . <span class="string"><span class="delimiter">'</span><span class="content"> </span><span class="delimiter">'</span></span> . <span class="local-variable">$chaine_un</span>;
- <span class="keyword">return</span> _T(<span class="local-variable">$chaine_un</span>, <span class="local-variable">$vars</span>);
- }
- } <span class="keyword">else</span> {
- <span class="keyword">if</span> (<span class="local-variable">$nb</span> > <span class="integer">1</span>) {
- <span class="keyword">return</span> _T(<span class="local-variable">$chaine_plusieurs</span>, <span class="local-variable">$vars</span>);
- } <span class="keyword">else</span> {
- <span class="keyword">return</span> _T(<span class="local-variable">$chaine_un</span>, <span class="local-variable">$vars</span>);
- }
- }
- }
- </span>
-
Faire un plugin de signalement
24 septembre 2012Faire un plugin de signalement (qui sera utile à la fois pour MediaSPIP et géodiversité)
Fonctionnement du plugin :
Un bouton sur une page d’objet X ou Y "signaler ce contenu".
Au click sur ce bouton, affichage d’un formulaire (configurable dans la partie privé du site) avec :
- un sélecteur de motifs de signalement ;
- un textarea permettant de laisser un message personnalisé ;
- un bouton valider
Lors d’un signalement :
- notification aux admins qu’un signalement a été fait ;
- notification à l’auteur de l’objet signalé pour le prévenir du signalement également ;
- au bout d’un certain nombre de signalements sur le même contenu (5 est la valeur par défaut), le contenu est dépublié automatiquement, seul un administrateur peut le soumettre à nouveau ;
Éléments configurables
- les motifs de signalement qui peuvent ne pas être utilisé du tout ;
- le motif de signalement par défaut ;
- le textarea libre mais à ce moment là le motif est obligatoire ;
- le statut minimum des personnes pouvant signaler un contenu ;
Les statuts des signalements
Les signalements ont trois statuts possibles :
-
publie
(validé) ; -
poubelle
(supprimé) ; -
refuse
(invalidé) ;
Lorsqu’un utilisateur signale un contenu, le statut est directement
publie
. Le signalement est considéré comme valide, l’utilisateur ne peut signale à nouveau ce contenu.Lorsque ce même utilisateur et uniquement lui, retire son signalement, son statut est alors
poubelle
, le signalement est invalidé et l’utilisateur peut signaler à nouveau le même contenu.Lorsqu’un administrateur modère un signalement, son statut est alors
refuse
, l’utilisateur l’ayant soumis le voit toujours en tant que soumis (et ne peut donc soumettre un nouveau signalement), par contre, il ne rentre plus dans le compte des signalements positifs.La modération des signalements par les admins
La modération des signalements se passe dans l’espace privé.
L’interface est sur le même modèle que celle des forums.
A faire
- création du plugin lui-même ;
- insertion de sa conf et de sa modération dans mediaspip_config ;
- insertion de son formulaire dans mediaspip_core ;