2016-07-18 5 views
1

Ich schreibe eine App, in der ich versuche, eine Datei aus dem Speicher auszuwählen und sie mit dem Standard-Player für ihren Typ zu starten oder eine Auswahl zu zeigen. Gerade jetzt, wenn der Media Player startet, startet die Wiedergabe sofort. Ich möchte, dass es die Datei lädt und auf Benutzereingaben wartet. Gibt es ein Extra, das ich zu meiner Absicht hinzufügen kann, dem Media Player mitzuteilen, dass er die Wiedergabe nicht starten soll?Android, Mediendatei im Player starten, ohne die Wiedergabe zu starten

// I have directory, filename, and mimeType defined in earlier code 
File file = new File(directory, filename); 
Intent intent = new Intent(Intent.ACTION_VIEW); 
intent.setDataAndType(Uri.fromFile(file), mimeType); 
if (intent.resolveActivity(getPackageManager() != null) { 
    startActivity(intent); 
} 
+0

ein Code würde wirklich helfen – Akis

Antwort

1

TL; DR: Nein


Es gibt keine dokumentierten Extras für the ACTION_VIEWIntent action. Mit tausenden von Gerätemodellen und tausenden weiteren Mediaplayern, die zum Download verfügbar sind, auch wenn Sie einige undokumentierte, nicht unterstützte Extras für einen dieser Spieler gefunden haben, wird keiner der anderen diese unterstützen.

Ich kenne keine Standard Intent Aktion für "Hier ist eine Mediendatei, richten Sie es ein, aber starten Sie die Wiedergabe nicht".

Drittanbieter-Anwendungen mit einem Intent Aufruf ist ein bisschen zu einer Website von Ihrer Website wie die Verknüpfung: was diese Website hat in Reaktion auf einen Benutzer, den Link zu dieser Seite online sind, Sie nicht. Der Ansatz Intent ist in vielerlei Hinsicht schlechter, da Sie mit einem Link zu einer Site eine Verknüpfung zu einer bestimmten Site herstellen und Sie wissen, dass die Site verfügbar sein soll. Mit Android kann die Intent eine beliebige Anzahl von möglichen Apps aufrufen.

+0

Vielen Dank, sowohl für Ihre Antwort als auch die nützliche Analogie! – Rae

1

Jemand korrigiert mich wenn ich falsch bin, aber von dem, was ich weiß, gibt es keine Möglichkeit, dass mit der einheimischen Spieler zu tun, weil es ist wie eine neue App starten, auf dem man nicht viel Kontrolle haben.

Ich würde vorschlagen, die Verwendung von VideoView für solche Funktionalität, die Sie suchen. Mit dieser Art und Weise können Sie umgehen, wenn das Video starten, ist dies ein wirklich grundlegendes Codebeispiel:

VideoView myVideoView = (VideoView) findViewById(R.id.videoView); 

Und in der Play-Taste klicken Ereignis: myVideoView.start();

+0

Ich entschuldige mich, ich werde meine Frage bearbeiten, um den Code aufzunehmen. Ich verwende keine Videoansicht, starte jedoch den Standard-Videoplayer auf dem Gerät. – Rae

+0

@Rae danke für das hinzufügen des code mate ich habe meine antwort bearbeitet. Ich hoffe es hilft – Akis

+1

danke für deine Antwort. Ich arbeite mit jemand anderem daran und wollte sicher sein, bevor ich sage, dass es unmöglich ist, einer externen App zu sagen, dass sie nicht sofort mit der Wiedergabe beginnen soll. – Rae