Я работаю над небольшим проектом, который использует videoView для отображения видеофайла .3GP внутри приложения. Мой код работает в эмуляторе нормально, но на физическом устройстве (Samsung Nexus S) он работает только через WiFi и время ожидания на 3G. Ниже приведен код, который я использую
public class VideoViewActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.videoplayer);
Bundle info = getIntent().getExtras();
String path = info.getString("link");
VideoView videoView = (VideoView) findViewById(R.id.videoView);
MediaController mediaController = new MediaController(this);
mediaController.setMediaPlayer(videoView);
videoView.setVideoPath(path);
videoView.setMediaController(mediaController);
videoView.requestFocus();
videoView.start();
mediaController.show();
XML-файл ниже
<?xml version="1.0" encoding="utf-8"?>
<VideoView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/videoView"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
/>
А вот логкат для WiFi и 3G
через 3G (не работает)
D/MediaPlayer( 6984): Couldn't open file on client side, trying server side
I/AwesomePlayer( 81): setDataSource_l('http://url.com/ski/famous.
3gp')
V/ChromiumHTTPDataSource( 81): connect on behalf of uid 10111
I/ChromiumHTTPDataSource( 81): connect to http://url.com/ski/famo
us.3gp @0
I/ActivityManager( 150): Displayed com.madarasan.SkiDroid/.VideoViewActivity: +
82ms
I/ChromiumHTTPDataSourceSupport( 81): OnReadCompleted, read failed, status 4
E/NuCachedSource2( 81): source returned error -1004, 10 retries left
D/ConnectivityService( 150): handleInetConditionHoldEnd: net=0, condition=100,
published condition=0
через WiFi (работает)
D/MediaPlayer( 6984): Couldn't open file on client side, trying server side
I/AwesomePlayer( 81): setDataSource_l('http://url.com/ski/famous.
3gp')
V/ChromiumHTTPDataSource( 81): connect on behalf of uid 10111
I/ChromiumHTTPDataSource( 81): connect to http://url.com/ski/famo
us.3gp @0
I/ActivityManager( 150): Displayed com.madarasan.SkiDroid/.VideoViewActivity: +
128ms
I/OMXCodec( 81): [OMX.SEC.MPEG4.Decoder] video dimensions are 320 x 240
Есть ли причина, по которой videoView не будет работать через 3G? Я использую это неправильно? Есть ли лучший / более простой способ показать видео в Android? Я не против использования других типов файлов. 3GP был просто примером.
Любая помощь будет принята с благодарностью. Спасибо.