Erste Video APP und es läuft nicht :(

  • 14 Antworten
  • Letztes Antwortdatum
S

sd-hl

Neues Mitglied
1
Hallo Android Freunde,

ich entwickel gerade eine App nach einem Tutorial zum Testen. Es geht dabei um das einfache Abspielen einer App ... So Simpel und ich bin am verzweifeln xD

Ich hab jetzt die App "erstellt" und zusammen mit dem Video auf die SD Karte gelegt.
Nun installiere ich die App und die Fläche wo das Video sein sollte, ist einfach nur Schwarz ... ein Fehler erhalte ich nicht.

Habt ihr ein Plan was ich für ein dummen Anfängerfehler ich mache?

Code:
package demo.de.demoproject;

import android.app.Activity;
import android.graphics.PixelFormat;
import android.media.MediaPlayer;
import android.net.Uri;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.os.Environment;
import android.view.View;
import android.widget.Button;
import android.widget.MediaController;

import android.widget.Toast;
import android.widget.VideoView;
import android.widget.MediaController;



import java.io.File;

public class MainScreen extends Activity {
    MediaController mediaController;
    private VideoView videoView;
    private Button btnHide;
    private Button btnShow;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        getWindow().setFormat(PixelFormat.TRANSLUCENT);
        setContentView(R.layout.activity_main_screen);

        VideoView videoView = (VideoView) findViewById(R.id.vv_multimedia_video);
        btnShow = (Button) this.findViewById(R.id.btnShow);
        btnHide = (Button) this.findViewById(R.id.btnHide);

        mediaController = new MediaController(this);

        File videoFile = new File(Environment.getExternalStorageDirectory() + "/test_video_app.mp4");

        if (videoFile.exists()) {
            System.out.println("");
            videoView.setVideoPath(videoFile.getAbsolutePath());
            System.out.println(videoFile.getAbsolutePath());


            videoView.setMediaController(mediaController);
            mediaController.setMediaPlayer(videoView);

            videoView.requestFocus();
            videoView.start();

        }else {
            Toast.makeText(this, "", Toast.LENGTH_LONG).show();
        }

        btnShow.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View v) {
                if (mediaController != null) {
                    // 0hide()
                    mediaController.show(0);
                }

            }
        });

        btnHide.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View v) {
                if (mediaController != null) {

                    mediaController.hide();
                }

            }
        });

       /*
       VideoView videoView = (VideoView) findViewById(R.id.vv_multimedia_video);

       videoView.setMediaController(new MediaController(this));
       videoView.setVideoURI(Uri.parse(
              "android.resource://" + getPackageName() + "/"
                       + R.raw.test_video_app
       ));
       videoView.requestFocus();
       videoView.start();*/
    }



    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.main_screen, menu);
        return true;
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        // Handle action bar item clicks here. The action bar will
        // automatically handle clicks on the Home/Up button, so long
        // as you specify a parent activity in AndroidManifest.xml.
        int id = item.getItemId();
        if (id == R.id.action_settings) {
            return true;
        }
        return super.onOptionsItemSelected(item);
    }
}
Code:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    android:paddingBottom="@dimen/activity_vertical_margin"
    tools:context=".MainScreen"
    android:background="@drawable/bg2">

    <VideoView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/vv_multimedia_video"
        android:layout_centerVertical="true"
        android:layout_centerHorizontal="true" />

    <Button
        android:id="@+id/btnShow"
        android:text="show"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        />
    <Button
        android:id="@+id/btnHide"
        android:text="hide"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        />
</RelativeLayout>

Ich hoffe ich finde hier einen Helden der nen Plan hat :D
Danke!

Grüße SD
 
Doofe (naive) Frage:

Environment.getExternalStorageDirectory()

Hast du dafür in der Manifest Datei die entsprechende Permission zum SDCard Lesen gesetzt?
 
Moin Moin

danke für die Antwort :)

ja, is drin.

HTML:
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />     
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
Grüße SD
 
Ok dann gucken wir mal:

1) System.out.println würde ich durch android.util.Log.v's ersetzen

2) Im VideoView (der xml Dateil) bin ich mir nicht sicher was der aus den
wrap_contents macht. Vielleicht macht der daraus auch 0 pixel.

android:layout_width="wrap_content"
android:layout_height="wrap_content"

Kannst hier mal ggf. feste Werte eintragen? sowas wie "150dp"

3) falls es immer noch nicht geht, versuch mal das so:


Uri uri = Uri.parse(
Environment.getExternalStorageDirectory().getAbsolutePath()+"/test_video_app.mp4");

videoView.setVideoURI(uri);
 
Moin

danke für deine Antwort :)

"Das Video kann leider nicht wiedergegeben werden"
Krieg ich nun als Antwort ^^

Grüße SD
 
über den log.v?
 
Moin

Code:
11-13 00:28:55.417    4943-4943/? V/Demo [ 11-13 00:28:55.418  4943: 4943 V/Demo1 ]
    /storage/sdcard/DCIM/test_video_app.mp4


Der ursprüngliche Beitrag von 00:29 Uhr wurde um 00:38 Uhr ergänzt:

Komische Sache:

1) in der virtuellen Maschine rennt das Video
2) auf meinem Testgerät rennt das Video nicht (Android 4.2.2)

Jmd ne Idee?
 
Kannst mal nen Video per Handy aufnehmen und versuchen das dann abzuspielen?

Evtl. ist nur das Video defekt.
 
Ne kann ich mir nicht vorstellen.
direkt im VideoPlayer vom Gerät kann ich das Video abspielen.
 
Du machst dann alles richtig.

Der verwendete Codec ist auf der Android 4.2.2 Version dann (noch nicht) vorhanden.

Hier ist eine Liste mit den unterstützten Medienformaten:

Supported Media Formats | Android Developers

Mit ffmpeg kannst du Formate konvertieren und du kannst nachschauen welchen
Codec die Datei verwendet (der Befehl ist ffprobe).

https://www.ffmpeg.org/
 
Moin

hm. Problem ist, dass selbst videos die ich auf Gerät machen nicht abgespielt werden ^^

oder muss ich irgendwas beachten? Ich hab mir das Tablet gerade neugekauft und is noch nix installiert und konfiguriert. bin eigentlich nen Appler. daher keine ahnung ob was noch installiert werden sollte.

wobei ja die Videos ohne die eigene App laufen :/
 
Kopf vs Tisch -.-. selten dämlich ... Environment.getExternalStorageDirectory() zeigt nicht auf die SD Card ...
 
Moin

und noch ein kleines Danke an dich monsti :) ohne dich wäre ich nicht auf die Idee gekommen mit Log zu Prüfen welche Datei er versucht aufzurufen :)

danke!
 
sd-hl schrieb:
Moin

und noch ein kleines Danke an dich monsti :) ohne dich wäre ich nicht auf die Idee gekommen mit Log zu Prüfen welche Datei er versucht aufzurufen :)

danke!

Naja auf solche Ideen müsstest du als Programmiere eigentlich selbst kommen :p

Sonst weißte jetzt fürs nächste mal bescheid :p

lg. Dagobert
 
Moin Dagobert,

da geb ich dir natürlich recht ;)
 

Ähnliche Themen

G
Antworten
0
Aufrufe
132
Gerdchen07
G
G
Antworten
1
Aufrufe
384
Gerdchen07
G
G
Antworten
13
Aufrufe
598
Gerdchen07
G
L
Antworten
2
Aufrufe
554
Lexub
L
migi01
Antworten
26
Aufrufe
1.990
migi01
migi01
Zurück
Oben Unten