Oto mój kod videoview:Nie można przesyłać wideo
Uri uri = Uri.parse(vidurl);
MediaController mediaController = new MediaController(this);
videoView.setMediaController(mediaController);
videoView.requestFocus();
videoView.setVideoURI(uri);
videoView.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {
@Override
public void onPrepared(MediaPlayer mp) {
videoView.start();
}
});
Filmy staram się grać przechowywane są w moim serwerze. Są one wysyłane z tej samej aplikacji za pomocą niestandardowej kamery. Oto parametry przechwytywania wideo: (tylko w przypadku coś było nie tak z tymi, próbowałem wszystkich kombinacji, VP8 Format zrobił strumienia, z wyjątkiem wyjścia nie ma dźwięku i został obrócony bokiem)
mMediaRecorder.setAudioSource(MediaRecorder.AudioSource.CAMCORDER);
mMediaRecorder.setVideoSource(MediaRecorder.VideoSource.CAMERA);
mMediaRecorder.setOutputFormat(MediaRecorder.OutputFormat.MPEG_4);
if (currentCameraId == Camera.CameraInfo.CAMERA_FACING_BACK) {
mMediaRecorder.setOrientationHint(90);
} else {
mMediaRecorder.setOrientationHint(270);
}
mMediaRecorder.setVideoSize(list.get(sizex).width, list.get(sizex).height);
mMediaRecorder.setVideoEncodingBitRate(1500000);
mMediaRecorder.setVideoEncoder(MediaRecorder.VideoEncoder.H264);
mMediaRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AAC);
mMediaRecorder.setVideoFrameRate(30);
mMediaRecorder.setMaxDuration(15000);
mMediaRecorder.setOutputFile(getVidFile().getAbsolutePath());
Próbowałem do rozwiązać to przez długi czas, ale teraz jestem bez pomysłów. Chciałbym przesłać strumieniowo te filmy wideo w widoku wideo. Ale zamiast tego muszę poczekać 10-20 sekund. Następnie rozpoczyna się wideo lub pojawia się błąd, że nie można odtworzyć wideo.
Dodatkowe informacje:
Projekt minimalna SDK jest 18, ale mogę go zmienić, czy to pomoże.
Moje urządzenie testujące jest Asus Zenfone 2 (5.0)
nie testowałem z dowolnym innym urządzeniem
Filmy są zapisywane w GoDaddy przyjmującym Linux. www.mydomain.com/videos/
kodowania wideo H.264 Baseline Profile jest
Moov Atom jest na górze (po fytp (lub coś takiego)) tak jak zaleca
Próbowałem za pomocą trzeciej partii wideo biblioteki gracz jak exomedia
Niektóre filmy wykonywać pracę, na przykład:
Sprawdziłem kodowanie wideo. Jest zakodowany w h264 MAIN PROFILE (z moich badań wynika, że główny profil nie jest obsługiwany w przypadku większości urządzeń z systemem Android, zalecany jest profil bazowy) ORAZ MOOV ATOM JEST W OSTATNIM STANOWISKU. Ale ten film gra dobrze ... dafuq?
EDIT: Właściwości tego Toystory wideo, który działa:
A oto wideo zrobione z mojej aplikacji z parameteres podanych powyżej (zauważ atom Moov jest na właściwym miejscu , ale to nadal nie działa)
Czy masz błąd? Zamiast wideoview.start() użyj mp.start() –
Teraz próbowałem używać mediplayera używając widoku powierzchni i nie zapominając wywołać prepareasync zamiast przygotować(), nadal nie działało. E/MediaPlayer: Błąd (1, -2147483648) – user6650650