2011-05-03 4 views
0

저는 Android 개발자와 장난을하기 시작했으며 어딘가에 웹에있는 비디오 파일을 재생하려고합니다. 내 main.xml에는 다음과 같습니다VideoView를 사용하려고 할 때 응용 프로그램이 손상되는 경우

<?xml version="1.0" encoding="utf-8"?> 
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
     android:orientation="vertical" 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent" 
    > 
    <Button android:layout_height="wrap_content" android:id="@+id/button1" android:layout_width="wrap_content" android:text="@string/buttonText" android:onClick="clickHandler"></Button> 
    <VideoView android:layout_height="wrap_content" android:layout_width="match_parent" android:id="@+id/MyVideoView"></VideoView> 
</LinearLayout> 

내 자바 파일은 다음과 같다 : 패키지 com.dop.videoTest; 내가 버튼을 클릭하면

import android.app.Activity; 
import android.os.Bundle; 
import android.view.View; 
import android.widget.MediaController; 
import android.widget.Toast; 
import android.widget.VideoView; 


public class VideoTest extends Activity { 
    private String path = "http://commonsware.com/misc/test2.3gp"; 
    private VideoView mVideoView; 

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

    public void clickHandler(View view) 
    { 
     mVideoView = (VideoView) findViewById(R.id.MyVideoView); 

     if (path == "") { 
      Toast.makeText(
        VideoTest.this, 
        "Please edit VideoViewDemo Activity, and set path" 
          + " variable to your media file URL/path", 
        Toast.LENGTH_LONG).show(); 

     } else { 
      mVideoView.setVideoPath(path); 
      mVideoView.setMediaController(new MediaController(this)); 
      mVideoView.requestFocus(); 
     } 
    } 
} 

그래서, 그냥 "응용 프로그램 비디오 테스트가 예기치 않게 중지되었습니다. 다시 시도하십시오."라고

어떤 아이디어가 있습니까?

+0

문자열은 등호 ('path.equals를 ("") ')를 사용하여 비교하려면,하지'경로 ==를

인터넷 권한

는 다음과 같이 설정할 수 있습니다 ""' – MByD

+0

logcat 로그를 추가하십시오. – MByD

+0

== 제대로 작동합니다. 그 외에도 문제가 해결되지 않을 것입니다. – Ronnie

답변

2

코드의 경로는 VideoView를 지켜 보면서이 인터넷 접속이 필요합니다

private String path = "http://commonsware.com/misc/test2.3gp"; 

입니다. 아마도 매니페스트에서 인터넷 권한을 설정하지 않은 것일 수 있습니다. 이 문제가 발생하는 이유 중 하나는 응용 프로그램이 매니페스트에서 명시적인 권한 설명이 필요한 항목에 액세스하려고 할 때입니다.

< uses-permission android:name="android.permission.INTERNET" /> 

확인이 링크 : Android Manifest Documentation

+0

사실입니다. 사실이 줄을 추가하면 오류가 사라지고 비디오가 재생됩니다. 일식이 왜 그런 말하지 않는 걸까요? 나는 그것이 그 이유라고 결코 짐작하지 않았을 것이다. – Ronnie

+0

글쎄, 안드로이드 지원 이클립스에서 안드로이드 팀에 의해 개발 된 별도의 플러그인에 의해 이루어집니다 (내가 아는만큼). 그래서 그것들의 부분은 일식을 비난해서는 안된다. Im은 안드로이드 개발자가 그러한 오류를 알려주는 것이 얼마나 쉬운 지 확신 할 수 없지만 여전히 안드로이드 개발 지원은 아직 성숙 단계에 근접하지는 않습니다.하지만 그들은 믿을 것입니다. – Rhymes

+0

Gotcha ... 자바에서 추적 또는 반향을 수행하여 Eclipse 콘솔에 나타나는 방법을 알고 있습니까? – Ronnie

관련 문제