
Recherche avancée
Autres articles (22)
-
La file d’attente de SPIPmotion
28 novembre 2010, parUne file d’attente stockée dans la base de donnée
Lors de son installation, SPIPmotion crée une nouvelle table dans la base de donnée intitulée spip_spipmotion_attentes.
Cette nouvelle table est constituée des champs suivants : id_spipmotion_attente, l’identifiant numérique unique de la tâche à traiter ; id_document, l’identifiant numérique du document original à encoder ; id_objet l’identifiant unique de l’objet auquel le document encodé devra être attaché automatiquement ; objet, le type d’objet auquel (...) -
Installation en mode ferme
4 février 2011, parLe mode ferme permet d’héberger plusieurs sites de type MediaSPIP en n’installant qu’une seule fois son noyau fonctionnel.
C’est la méthode que nous utilisons sur cette même plateforme.
L’utilisation en mode ferme nécessite de connaïtre un peu le mécanisme de SPIP contrairement à la version standalone qui ne nécessite pas réellement de connaissances spécifique puisque l’espace privé habituel de SPIP n’est plus utilisé.
Dans un premier temps, vous devez avoir installé les mêmes fichiers que l’installation (...) -
Emballe médias : à quoi cela sert ?
4 février 2011, parCe plugin vise à gérer des sites de mise en ligne de documents de tous types.
Il crée des "médias", à savoir : un "média" est un article au sens SPIP créé automatiquement lors du téléversement d’un document qu’il soit audio, vidéo, image ou textuel ; un seul document ne peut être lié à un article dit "média" ;
Sur d’autres sites (5319)
-
A Comprehensive Guide to Robust Digital Marketing Analytics
30 octobre 2023, par Erin -
Web Analytics : The Quick Start Guide
25 janvier 2024, par Erin -
Unable play Audio AC3 in Exoplayer + FFmpeg, i read the guide correctly, should I be wrong ?
24 mars 2020, par mOsCpU0I would like to implement FFmpeg in Exoplayer in my App, in order to read video formats with AC3 Audio track.
I followed these steps, but I still don’t hear Audio AC3 and I can’t enable Exoplayer to play the audio track via Software.
I have my code if needed and the guide I used is this :
https://github.com/google/ExoPlayer/tree/release-v2/extensions/ffmpeg
I hope for your help !
package com.omegasus_test.myapplication;
import androidx.appcompat.app.AppCompatActivity;
import android.app.Dialog;
import android.net.Uri;
import android.os.Bundle;
import android.os.Environment;
import android.view.View;
import android.view.Window;
import android.widget.Button;
import android.widget.RelativeLayout;
import android.widget.TextView;
import android.widget.Toast;
import com.google.android.exoplayer2.DefaultRenderersFactory;
import com.google.android.exoplayer2.ExoPlaybackException;
import com.google.android.exoplayer2.ExoPlayer;
import com.google.android.exoplayer2.ExoPlayerFactory;
import com.google.android.exoplayer2.PlaybackParameters;
import com.google.android.exoplayer2.Player;
import com.google.android.exoplayer2.Timeline;
import com.google.android.exoplayer2.source.ExtractorMediaSource;
import com.google.android.exoplayer2.source.MediaSource;
import com.google.android.exoplayer2.source.TrackGroupArray;
import com.google.android.exoplayer2.source.hls.HlsMediaSource;
import com.google.android.exoplayer2.trackselection.AdaptiveTrackSelection;
import com.google.android.exoplayer2.trackselection.DefaultTrackSelector;
import com.google.android.exoplayer2.trackselection.TrackSelection;
import com.google.android.exoplayer2.trackselection.TrackSelectionArray;
import com.google.android.exoplayer2.ui.AspectRatioFrameLayout;
import com.google.android.exoplayer2.ui.SimpleExoPlayerView;
import com.google.android.exoplayer2.upstream.BandwidthMeter;
import com.google.android.exoplayer2.upstream.DefaultBandwidthMeter;
import com.google.android.exoplayer2.upstream.DefaultDataSourceFactory;
import com.google.android.exoplayer2.util.Util;
import java.io.File;
import java.io.FileOutputStream;
public class MainActivity extends AppCompatActivity {
String LINK_TO_PLAY="";
ExoPlayer player;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Uri uri=Uri.parse(LINK_TO_PLAY);
final SimpleExoPlayerView pv=findViewById(R.id.player_view);
pv.setVisibility(View.GONE);
pv.setResizeMode(AspectRatioFrameLayout.RESIZE_MODE_FIT);
BandwidthMeter bandwidthMeter = new DefaultBandwidthMeter();
TrackSelection.Factory videoTrackSelectionFactory =new AdaptiveTrackSelection.Factory(bandwidthMeter);
DefaultTrackSelector trackSelector =new DefaultTrackSelector(videoTrackSelectionFactory);
trackSelector.setParameters( trackSelector.getParameters().buildUpon().setPreferredAudioLanguage("ita"));
DefaultRenderersFactory rf = new DefaultRenderersFactory(getApplicationContext()).setExtensionRendererMode(DefaultRenderersFactory.EXTENSION_RENDERER_MODE_PREFER);
player = ExoPlayerFactory.newSimpleInstance(getApplicationContext(),rf, trackSelector);
pv.setPlayer(player);
MediaSource source;
if(LINK_TO_PLAY.contains("file://")){
DefaultDataSourceFactory dataSourceFactory = new DefaultDataSourceFactory(getApplicationContext(), Util.getUserAgent(getApplicationContext(), "com.omegasus_test.myapplication"));
source = new ExtractorMediaSource.Factory(dataSourceFactory).createMediaSource(uri);
}else if(LINK_TO_PLAY.contains(".m3u8")){
DefaultDataSourceFactory dataSourceFactory = new DefaultDataSourceFactory(getApplicationContext(),Util.getUserAgent(getApplicationContext(), "com.omegasus_test.myapplication"));
source = new HlsMediaSource.Factory(dataSourceFactory).createMediaSource(uri);
}else{
DefaultDataSourceFactory dataSourceFactory = new DefaultDataSourceFactory(getApplicationContext(),Util.getUserAgent(getApplicationContext(), "com.omegasus_test.myapplication"));
source = new ExtractorMediaSource.Factory(dataSourceFactory).createMediaSource(uri);
}
player.prepare(source);
player.addListener(new Player.EventListener(){
public void onSeekProcessed(){}
public void onPlayerStateChanged(boolean playWhenReady, int playbackState) {
if(playbackState == ExoPlayer.STATE_READY){
pv.setVisibility(View.VISIBLE);
pv.setResizeMode(AspectRatioFrameLayout.RESIZE_MODE_FIT);
}else if(playbackState==ExoPlayer.STATE_BUFFERING){
}else if(playbackState==ExoPlayer.STATE_ENDED){
}
}
public void onTimelineChanged(Timeline p1, Object p2, int p3){
}
public void onTracksChanged(TrackGroupArray p1, TrackSelectionArray p2){
}
public void onShuffleModeEnabledChanged(boolean p1){
}
public void onPositionDiscontinuity(int p1){
}
public void onPlaybackParametersChanged(PlaybackParameters p1){
}
public void onLoadingChanged(boolean p1){
}
public void onPlayerError(ExoPlaybackException p1){
if(p1.getMessage()==null){
Toast.makeText(getApplicationContext(),"Errore sconosciuto",Toast.LENGTH_SHORT).show();
}else{
Toast.makeText(getApplicationContext(),"Player Error: "+p1.getMessage(),Toast.LENGTH_SHORT).show();
}
player.setPlayWhenReady(false);
player.stop();
player.seekTo(0);
player.release();
finish();
}
public void onRepeatModeChanged(int p1){
}
});
player.setPlayWhenReady(true);
}
}