Video wird nicht angezeigt (Android Studio - Java)

  • 17 Antworten
  • Neuester Beitrag
Diskutiere Video wird nicht angezeigt (Android Studio - Java) im Android App Entwicklung im Bereich Betriebssysteme & Apps.
L

louisbgt

Neues Mitglied
Ich habe auch noch einmal die Datei direkt über AndroidStudio und nicht über den Explorer in den raw Ordner eingefügt. Es wird keine Fehlermeldung angezigt, die App startet ganz normal, ist aber leer bzw. zeigt kein Video.
Könnt ihr mir bitte helfen? Dies ist mein Code:
Javascript:
package com.udemy.videodemo;

import androidx.appcompat.app.AppCompatActivity;

import android.os.Bundle;
import android.widget.VideoView;

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        VideoView videoView = findViewById(R.id.VideoView);
        // Video Pfad setzten: Path weil auf Pc; Pfad: android.resource://com/udemy/videodemo/res/raw/demovideo
        videoView.setVideoPath("android.resource://" + getPackageName() + "/" + R.raw.demovideo);
        videoView.start();
    }
}
Beitrag automatisch zusammengefügt:

Ich habe das gleiche Problem auch bei Sound:
Mein Java QuellCode:
Javascript:
package com.udemy.sounddemo;

import androidx.appcompat.app.AppCompatActivity;

import android.media.MediaPlayer;
import android.os.Bundle;
import android.view.View;

public class MainActivity extends AppCompatActivity {

    // lila > globale Variable
    MediaPlayer mediaPlayer;

    public void play(View view){
        mediaPlayer.start();
    }

    public void pause(View view){
        mediaPlayer.pause();
    }

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        // grafische Elemente sind nicht notwendig um Sound abzuspielen
        // ich brauche immer einen Context; dann weise ich daraufhin wo sich die Datei befindet (Uri)
        mediaPlayer = MediaPlayer.create(this, R.raw.demosound);
        mediaPlayer.start();
    }
}
und hier erhalte ich im Logcat folgendes:
Code:
 16:30:31.801 300-29687/? I/chatty: uid=1041(audioserver) HwBinder:300_2 identical 45 lines
2020-12-27 16:30:31.823 300-29687/? W/android.hardware.audio.service.ranchu: TinyalsaSink::consumeThread:176 pcm_write failed with res=-1
2020-12-27 16:30:31.824 171-171/? E/SELinux: avc:  denied  { find } for pid=29775 uid=2000 name=car_service scontext=u:r:shell:s0 tcontext=u:object_r:default_android_service:s0 tclass=service_manager permissive=0
2020-12-27 16:30:31.824 29775-29775/? W/cmd: Can't find service car_service
 
Zuletzt bearbeitet:
Empfohlene Antwort(en)
J

jogimuc

Stammgast
Code:
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    myVideo = (VideoView) findViewById(R.id.playVideo);

    Uri uri = Uri.parse("android.resource://" + getPackageName() + "/" + R.raw.bootanimation_nexus);

    media_control = new MediaController(this);

    myVideo.setMediaController(media_control);

    myVideo.setVideoURI(uri);

    myVideo.start();

}
Android VideoView Example
 
Zuletzt bearbeitet:
Alle Antworten (17)
J

jogimuc

Stammgast
Hallo dein path ist falsch.
Benutze die Uri.

videoView.setVideoPath(Uri.parse(
"android.resource://" + getPackageName() + "/" + R.raw.demovideo));
 
L

louisbgt

Neues Mitglied
@jogimuc Dann kommt eine Fehlermeldung, dass ein string erwartet wird aber ein uri kommt.

problem.PNG
 
Zuletzt bearbeitet von einem Moderator:
Bearbeitet von hagex - Grund: Bild verkleinert. Gruß von hagex
L

louisbgt

Neues Mitglied
@jogimuc Leider immer noch kein Video in der App

1609094557747.png
 

Anhänge

Zuletzt bearbeitet von einem Moderator:
Bearbeitet von hagex - Grund: Bild verkleinert. Gruß von hagex
L

louisbgt

Neues Mitglied
@jogimuc Wie meinst du das genau?
 
L

louisbgt

Neues Mitglied
Die Anleitung ist leider in Kotlin.
Ich programmiere erstmal in Java.
 
J

jogimuc

Stammgast
Der erste link nicht.

Ps nach welchen tutorial bist du eigentlich vorgegangen?
Wo in welcher view willst du eigentlich das Video anzeigen lassen?

Hier ein zwar älteres tut in Deutsch mit einer surfaceview zum anzeigen.

Die Anleitung zu Android MediaPlayer
 
Zuletzt bearbeitet:
L

louisbgt

Neues Mitglied
Ich arbeite zurzeit mit dem Entwicklerkurs auf Udemy. Leider funktioniert es auch trotz der Anleitungen, die du mir gegeben hast, nicht. Außerdem sind diese viel zu umfangreich, ich möchte erstmal nur ein Video abspielen.

Ich möchte das Video gerne in meiner VideoView anzeigen lassen:
1609150990527.png
 
Zuletzt bearbeitet von einem Moderator:
Bearbeitet von hagex - Grund: Bild verkleinert. Gruß von hagex
J

jogimuc

Stammgast
Code:
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    myVideo = (VideoView) findViewById(R.id.playVideo);

    Uri uri = Uri.parse("android.resource://" + getPackageName() + "/" + R.raw.bootanimation_nexus);

    media_control = new MediaController(this);

    myVideo.setMediaController(media_control);

    myVideo.setVideoURI(uri);

    myVideo.start();

}
Android VideoView Example
 
Zuletzt bearbeitet:
L

louisbgt

Neues Mitglied
@jogimuc Vielen Dank 🙏🙏🙏
Endlich funktioniert es!
Könntest du mir jetzt noch bitte erklären was anders ist als bei meinem Code und wieso das anders sein soll und was das bedeutet? Immerhin hat der Typ in dem Tutorial es genauso wie ich gehabt und bei ihm hat es problemlos funktioniert. (Allerdings bezieht sich sein Tutorial auf AndroidStudio 3 oder 4 und ich hab 10).
Kennst du vielleicht bessere bzw. aktuellere Bücher, Kurse (gern auch kostenpflichtig) für Anfänger zur Programmierung mit Android Studio.

Mit freundlichen Grüßen

1609153948756.png
 
Zuletzt bearbeitet von einem Moderator:
Bearbeitet von hagex - Grund: Bild verkleinert. Gruß von hagex
J

jogimuc

Stammgast
Du hast in deinen Code kein Objekt von Mediacontoler erstellt und es deinen VideoView auch nicht gegeben.

Das wird er in den Video gemacht haben. Sonst würde es nicht gehen.

Auch in den anderen Forum in dem du bist wird in den kotlin Code das so gemacht.
 
L

louisbgt

Neues Mitglied
Für mich sind eigentlich alle Zeilen Code verständlich. Bis auf eine:
Code:
Uri uri = Uri.parse("android.resource://" + getPackageName() + "/" + R.raw.demovideo);
und nachtürlich die dazugehörige Codezeile:
Code:
myVideo.setVideoURI(uri);
Ich vertsehe den Pfad nicht und das Uri.
In dem Tutorial wurde auch ein vollkommen anderer Pfad beschrieben:
Code:
videoView.setVideoPath("android.resource://" + getPackageName() + "/" + R.raw.demovideo);
Beitrag automatisch zusammengefügt:

@jogimuc
1609156561838.png
Dieser Code funktioniert auch mit anderen Pfad. Was ist der Unterschied?
 
Zuletzt bearbeitet von einem Moderator:
Bearbeitet von hagex - Grund: Bild verkleinert. Gruß von hagex
J

jogimuc

Stammgast
Ja in deinem erste Code fehlt das Objekt von Mediacontoler und die Übergabe dieser Objektes an das VideoView Objekt.
Der path war in Ordnung und beide Versionen ob Uri oder direckt gehen.

Uri würdest du brauchen wenn du zb aus dem internet was laden willst.
 
L

louisbgt

Neues Mitglied
Wie würde m ein pfad aussehen wenn ich etwas aus dem Internet laden möchte? Wäre das nur die webadresse oder müsste da noch was davor?
Kennst du vielleicht bessere bzw. aktuellere Bücher, Kurse (gern auch kostenpflichtig) für Anfänger zur Programmierung mit Android Studio.
 
J

jogimuc

Stammgast
Hallo
Wie würde m ein pfad aussehen wenn ich etwas aus dem Internet laden möchte? Wäre das nur die webadresse oder müsste da noch was davor?

Auch hier kannst du wider mit beiden Pfad angaben arbeiten.
URI oder auch Direkt.
Die komplette URL (URI) zu der Video Datei.
Wichtig ist aber das du auch die Internet Permission im Manifest gesetzt hast.

<uses-permission android:name="android.permission.INTERNET" />
Sonst hast du keinen Internet zugriff.


Wenn du dir meine Link zu VideoView angesehen hättest wüstest du das. Da wird eigentlich das wichtigste zu VideoView erklärt.
An Android Studio VideoView and MediaController Tutorial - Techotopia


videoView.setVideoPath("http://www.ebookfrenzy.com/android_book/movie.mp4");

oder

Uri uri = Uri.parse("("http://www.ebookfrenzy.com/android_book/movie.mp4");
myVideo.setVideoURI(uri);

kommt auf das gleiche raus in dem Fall.
Schaue dir dazu an was eine URI ist.

Die Klasse VideoView hat drei Methoden wie du ihr eine Datei übergeben kannst.
Als Pfad oder als URI.


public void setVideoPath (String path)

public void setVideoURI (Uri uri)

public void setVideoURI (Uri uri, Map<String, String> headers)

Link zur Doku (Referenz) hattest du auch schon.
https://developer.android.com/reference/android/widget/VideoView


Kennst du vielleicht bessere bzw. aktuellere Bücher, Kurse (gern auch kostenpflichtig) für Anfänger zur Programmierung mit Android Studio.
Nein im Moment nicht wobei der Kurs den du hast bestimmt nicht schlecht ist.
Nur sollte man da auch von vorne anfangen und nicht mittendrin. Er hat bestimmt auch einiges zu den Grundlagen erklärt.
 
Zuletzt bearbeitet:
Ähnliche Themen - Video wird nicht angezeigt (Android Studio - Java) Antworten Datum
0
25
10