| |||||||
Das Thema "Probleme beim Einbinden von Videos!" befindet sich unter Android App Entwicklung auf Android-Hilfe.de.
|
| | Themen-Optionen | Ansicht |
| | #1 (permalink) |
| Neuer Benutzer Registriert seit: 13.04.2010
Beiträge: 22
Abgegebene Danke: 3
Erhielt 0 Danke für 0 Beiträge
| Meine App soll Videos zum Streamen zur Verfügung stellen! Da ich mich noch nie damit beschäftigt habe, wollte ich einfach mal ein Video in einer VideoView einbinden. Kann ja net so schwer sein oder ??? Hier mal mein Code: Code: protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
this.requestWindowFeature(Window.FEATURE_NO_TITLE);
this.setContentView(R.layout.videos);
VideoView video = (VideoView)this.findViewById(R.id.video);
MediaController mediaController = new MediaController(this);
mediaController.setAnchorView(video);
video.setMediaController(mediaController);
video.setVideoPath("W://android_testvideo.3gp");
video.requestFocus();
video.start();
} Habs auch schon mit einem Video von einem Webserver probiert. Code: Uri uri = Uri.parse("http://....../20100515_dfb-pokal-finals-zwanziger.mp4");
video.setVideoURI(uri); Falls jemand was damit anfangen kann poste ich hier auch noch den Auszug aus der LogCat der angezeigt wird wenn ich die Aktivität starte: 05-19 08:59:40.729: ERROR/PlayerDriver(57): Command PLAYER_INIT completed with an error or info UNKNOWN PVMFStatus 05-19 08:59:40.729: VERBOSE/MediaPlayerService(57): [43] notify (0x227e0, 100, 200, -32) 05-19 08:59:40.729: VERBOSE/MediaPlayer(15803): message received msg=100, ext1=200, ext2=-32 05-19 08:59:40.739: ERROR/MediaPlayer(15803): error (200, -32) 05-19 08:59:40.739: VERBOSE/MediaPlayer(15803): callback application 05-19 08:59:40.739: ERROR/MediaPlayer(15803): Error (200,-32) 05-19 08:59:40.739: DEBUG/VideoView(15803): Error: 200,-32 Meine eigentliche Frage ist jetzt: Ist etwas an meinem Programmcode falsch ?? Muss ich irgendwas besonderes beachten ?? Irgendwelche besonderen Permissions setzen ? (Internet Permission ist übrigens gesetzt). Oder müssen sich unsere Videomenschen weiter mit der Codierung herumquälen ?? Sie haben mir bereits 3 oder 4 verschiedene Videos zur verfügung gestellt und mit allen is es das selbe Problem. lg gurkenprinz Geändert von gurkenprinz (19.05.2010 um 12:10 Uhr) |
| | |
| | #2 (permalink) |
| Fortgeschrittenes Mitglied Registriert seit: 14.08.2009
Beiträge: 354
Abgegebene Danke: 23
Erhielt 49 Danke für 43 Beiträge
|
Bei den Beispielen vom SDK, sind sogar 2 arten von abspielen von Videos vorhanden. auch das Streamen von Videos ist dabei. Du solltest dir diese einfach mal ansehen und deine videos mit dieser app einfach testen Du kannst natürlich nicht jedes Format abspielen deswegen einfach mit der app testen...Gruß Michael
__________________ http://android.fungamer.net/ |
| | |
| | #3 (permalink) |
| Neuer Benutzer Registriert seit: 13.04.2010
Beiträge: 22
Abgegebene Danke: 3
Erhielt 0 Danke für 0 Beiträge
|
danke für die antwort michael. nach langem hin und herprobieren hab ich eine Methode gefunden mit der sich die Videos abspielen lassen. Allerdings habe ich jetzt das Problem das die Videos erst komplett geladen werden bevor sie abgespielt werden (Dauert bei einem 3min. Video fast eine Minute). Hier mal mein Code. Code: public class ShowVideo extends Activity
{
private String path = "";
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
this.requestWindowFeature(Window.FEATURE_NO_TITLE);
this.setContentView(R.layout.video);
Bundle extra = this.getIntent().getExtras();
if(extra!=null)
{
path = extra.getString("videoUrl");
}
VideoView vv = (VideoView)this.findViewById(R.id.surface);
MediaController mc = new MediaController(this);
vv.setMediaController(mc);
try
{
vv.setVideoURI(Uri.parse(this.getDataSource(path)));
}
catch (IOException e)
{
Log.e("IOException", e.getMessage());
}
vv.start();
vv.requestFocus();
}
private String getDataSource(String path) throws IOException
{
Log.v("getDataSource", "start");
if (!URLUtil.isNetworkUrl(path))
{
return path;
}
else
{
URL url = new URL(path);
URLConnection cn = url.openConnection();
cn.connect();
InputStream stream = cn.getInputStream();
if (stream == null)
{
throw new RuntimeException("stream is null");
}
File temp = File.createTempFile("mediaplayertmp", "dat");
temp.deleteOnExit();
String tempPath = temp.getAbsolutePath();
FileOutputStream out = new FileOutputStream(temp);
byte buf[] = new byte[128];
do
{
int numread = stream.read(buf);
if (numread <= 0)
break;
out.write(buf, 0, numread);
}
while (true);
try
{
stream.close();
}
catch (IOException ex)
{
Log.e("error: " + ex.getMessage(), ex.getMessage());
}
Log.v("getDataSource", "fertig");
return tempPath;
}
}
} Wenn ich diese Methode nicht verwende und die VideoUrl gleich der VideoView übergebe bekomm ich die Fehlermeldung "Dieses Video ist für Streaming auf diesem Gerät nicht gültig". Ich habe die Methode getDataSource aus dem Internet kopiert. Ich versteh sie um ehrlich zu sein gar nicht. Aber sie hat es zumindest mal ermöglicht meine Videos abzuspielen (nach sehr langer ladezeit). Kann mir jemand einen Tipp geben wie ich es schaffe, dass die Videos bereits gestartet werden bevor sie fertig geladen sind ?? Die Videos kommen übrigens aus der selben Quelle wie sie ein Kollege für sein IPhone App verwendet hat. Sie sollten also fürs onlinestreaming gültig sein. Besten Dank !! lg gurkenprinz |
| | |
![]() |
|
| Themen-Optionen | |
| Ansicht | |
| |
| ||||
| Thema | Autor | Forum | Antworten | Letzter Beitrag |
| Probleme mit Sound von aufgenommenen Videos mit Camcorder | tux | Samsung Galaxy (I7500) Forum | 8 | 01.06.2010 01:07 |
| Probleme beim rooten von Milestone 2.1-update 1 | ballaballa22 | Root / Hacking / Modding für Motorola Milestone | 53 | 23.04.2010 16:34 |
| Probleme beim Empfang von SMS/MMS | Wagyman | HTC Desire Forum | 1 | 15.04.2010 10:55 |
| Probleme beim hinzufügen von WLANs | määx | Android App Entwicklung | 4 | 23.01.2010 15:18 |
| Probleme beim Wechsel von 2G auf 3G | The One | T-Mobile G1 Forum | 2 | 13.02.2009 03:48 |