2012-08-26 3 views
0

사용자가 인앱 동영상 (이미 애플리케이션에 패키지되어있는 동영상)을 재생할 수있는 앱을 만들려고합니다. 아니요 SDCard 또는 온라인 스트리밍이 진행 중입니다.Android -이 비디오를 재생할 수 없습니다 !! 무슨 일이야?

그러나 어떤 전략을 사용하더라도 내 앱에서 간단한 .mp4 비디오를 실행할 수 없습니다. assests 폴더에 비디오를 넣으려고했지만 행운이 없습니다. res/raw 폴더에 비디오를 넣으려고했습니다. 다시 운이 없었습니다.

앱을 실행할 때마다 다음과 같이 말합니다. -이 비디오를 재생할 수 없습니다.

앞서 나는 단지 VideoView 지금은 오류 메시지는 상관없이 내가 사용하는 어떤 솔루션 꽤 많은 시간과 위해가 고생으로 ​​도와주세요

오고 계속 VideoView와 함께 MediaController을 사용하고, 비디오를 실행하는 데 사용하는 경우, 나는 여전히 간단한 비디오를 실행할 수 없다.

내 활동 코드 :

public class MainActivity extends Activity { 

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

      MediaController mediac; 
      VideoView video1; 
      mediac = new MediaController(this);   
      video1 = (VideoView) findViewById(R.id.vv01); 
      video1.setMediaController(mediac); 
      mediac.setAnchorView(video1); 

      video1.setVideoURI(Uri.parse("android.resource://com.example.test/raw/aa")); 
video1.start(); 

     } 

내 xml 파일 :

<LinearLayout 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" > 


    <VideoView 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:id="@+id/vv01" 
     android:contentDescription="@string/app_name" 
     /> 

</LinearLayout> 

나는 응용 프로그램을 실행하려고 로그 고양이 :

08-26 13:27:31.023: I/dalvikvm(624): threadid=3: reacting to signal 3 
08-26 13:27:31.593: I/dalvikvm(624): Wrote stack traces to '/data/anr/traces.txt' 
08-26 13:27:31.643: I/dalvikvm(624): threadid=3: reacting to signal 3 
08-26 13:27:31.913: I/dalvikvm(624): Wrote stack traces to '/data/anr/traces.txt' 
08-26 13:27:31.923: D/dalvikvm(624): GC_CONCURRENT freed 147K, 3% free 9345K/9607K, paused 7ms+7ms 
08-26 13:27:32.053: I/dalvikvm(624): threadid=3: reacting to signal 3 
08-26 13:27:32.083: I/dalvikvm(624): Wrote stack traces to '/data/anr/traces.txt' 
08-26 13:27:32.533: I/dalvikvm(624): threadid=3: reacting to signal 3 
08-26 13:27:32.564: I/dalvikvm(624): Wrote stack traces to '/data/anr/traces.txt' 
08-26 13:27:33.033: I/dalvikvm(624): threadid=3: reacting to signal 3 
08-26 13:27:33.063: I/dalvikvm(624): Wrote stack traces to '/data/anr/traces.txt' 
08-26 13:27:33.613: D/MediaPlayer(624): getMetadata 
08-26 13:27:33.973: E/MediaPlayer(624): error (1, -2147483648) 
08-26 13:27:34.093: E/MediaPlayer(624): Error (1,-2147483648) 
08-26 13:27:34.093: D/VideoView(624): Error: 1,-2147483648 
+0

당신이 당신의 videoviewer으로 스트리밍하려고 할 때 인터넷 권한을 추가해야합니다. logcat 오류 로그를보고 여기에 붙여 넣을 수 있습니까? "이 비디오를 재생할 수 없습니다"라는 메시지가 나타나면 오류 출력이 있어야합니다. – Infinity

답변

0

당신은 외부 VideoView를 지켜 보면서을 선언해야을 onStart (그리고 미디어 컨트롤러 역시).

즉 각 명령에 사용 시도/캐치를 작동하고 Log.e하지 않는 경우

+0

안녕하세요. 피터 님, 나는 당신에게 제안한대로했지만 행운은 없습니다. Quynh와 Peter, 참조 용 로그 고양이 첨부 중입니다. – Harry

+0

http://developer.android.com/reference/android/widget/VideoView.html OnCompletionListener 등과 같은 일부 기능이 있어야한다고 생각합니다. 비동기로 설정하려고 했습니까? – MayTheSchwartzBeWithYou

+0

아니요 OnCompletionListener 함수 나 코드에 아무 것도 없습니다. 또한 비동기로 만들려고하지 않았습니다. 정말 필요한가요? 비디오 뷰를 사용하여 비디오 파일을 실행하기위한 코드를 검색하려고 시도한 모든 곳에서 위의 코드와 비슷하거나 같습니다. 전혀 동기화/비동기 없음. Peter - 위의 코드를 실행하고 무슨 일이 일어나고 있는지 확인해 주시겠습니까? – Harry