Video wird nicht angezeigt (Android Studio - Java)

  • 17 Antworten
  • Letztes Antwortdatum
Status
Dieses Thema wurde gelöst! Zur Lösung springen…
L

louisbgt

Neues Mitglied
0
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();
    }
}
Beiträge automatisch zusammengeführt:

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)
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:
  • Danke
Reaktionen: louisbgt
Alle Antworten (17)
Hallo dein path ist falsch.
Benutze die Uri.

videoView.setVideoPath(Uri.parse(
"android.resource://" + getPackageName() + "/" + R.raw.demovideo));
 
@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
@jogimuc Leider immer noch kein Video in der App

1609094557747.png
 

Anhänge

  • 1609094469945.png
    1609094469945.png
    247,3 KB · Aufrufe: 193
Zuletzt bearbeitet von einem Moderator:
Bearbeitet von: hagex - Grund: Bild verkleinert. Gruß von hagex
@jogimuc Wie meinst du das genau?
 
Die Anleitung ist leider in Kotlin.
Ich programmiere erstmal in Java.
 
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:
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
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:
  • Danke
Reaktionen: louisbgt
@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
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.
 
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);
Beiträge automatisch zusammengeführt:

@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
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.
 
  • Danke
Reaktionen: louisbgt
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.
 
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:
  • Danke
Reaktionen: louisbgt
Status
Dieses Thema wurde gelöst! Zur Lösung springen…

Ähnliche Themen

M
Antworten
21
Aufrufe
1.305
swa00
swa00
Mr-Fisch
Antworten
5
Aufrufe
941
migi01
migi01
Mr-Fisch
Antworten
8
Aufrufe
990
Mr-Fisch
Mr-Fisch
M
Antworten
9
Aufrufe
773
mkuz24
M
A
Antworten
5
Aufrufe
680
swa00
swa00
Zurück
Oben Unten