के साथ एक और थ्रेड और समस्या में एंड्रॉइड वीडियो देखें मैं एंड्रॉइड वीडियो व्यू में स्ट्रीम वीडियो फॉर्म यूआरएल चाहता हूं। मैं प्राप्त करने के लिए मेरी जरूरत .मेरा कोडएंड्रॉइड वीडियो देखें एंड्रॉइड 2.1
public class VideoViewDemo extends Activity {
private static final String TAG = "VideoViewDemo";
private String current;
/**
* TODO: Set the path variable to a streaming video URL or a local media
* file path.
*/
private String path = "http://www.boisestatefootball.com/sites/default/files/videos/original/01%20-%20coach%20pete%20bio_4.mp4";
private VideoView mVideoView;
@Override
public void onCreate(Bundle icicle) {
super.onCreate(icicle);
setContentView(R.layout.videoview);
mVideoView = (VideoView) findViewById(R.id.surface_view);
runOnUiThread(new Runnable() {
public void run() {
playVideo();
}
});
}
private void playVideo() {
try {
// final String path = path;
Log.v(TAG, "path: " + path);
if (path == null || path.length() == 0) {
Toast.makeText(VideoViewDemo.this, "File URL/path is empty",
Toast.LENGTH_LONG).show();
} else {
// If the path has not changed, just start the media player
if (path.equals(current) && mVideoView != null) {
mVideoView.start();
mVideoView.requestFocus();
return;
}
current = path;
mVideoView.setVideoPath(getDataSource(path));
mVideoView.start();
mVideoView.setMediaController(new MediaController(this));
mVideoView.requestFocus();
}
} catch (Exception e) {
Log.e(TAG, "error: " + e.getMessage(), e);
if (mVideoView != null) {
mVideoView.stopPlayback();
}
}
}
private String getDataSource(String path) throws IOException {
if (!URLUtil.isNetworkUrl(path)) {
return path;
} else {
URL url = new URL(path);
URLConnection cn = url.openConnection();
cn.connect();
InputStream stream = cn.getInputStream();
if (stream == null)
throw new RuntimeException("stream is null");
File temp = File.createTempFile("mediaplayertmp", "dat");
temp.deleteOnExit();
String tempPath = temp.getAbsolutePath();
FileOutputStream out = new FileOutputStream(temp);
byte buf[] = new byte[128];
do {
int numread = stream.read(buf);
if (numread <= 0)
break;
out.write(buf, 0, numread);
} while (true);
try {
stream.close();
} catch (IOException ex) {
Log.e(TAG, "error: " + ex.getMessage(), ex);
}
return tempPath;
}
}
}
यहाँ है तुम वहाँ धागा मेरे पर से किसी भी तरह से इस संभाल करने .is देख सकते हैं मैं वीडियो स्ट्रीम करने के uithread उपयोग कर रहा हूँ कि में नमूना एपीआई कोड और किया छोटे संशोधन का उपयोग
मैं क्या करने की कोशिश की
new Thered(new Runnable() {
public void run() {
playVideo();
}
}).start();
है लेकिन यह
और यह भी विफल जबकि Android 2.2 पहले कोड रन में चल रहा है और यह error(-38,0)
से पता चलता मैं एन एंड्रॉइड 2.1 यह त्रुटि क्या है ?? मैंने This File चेक किया लेकिन यह नहीं पता कि यह क्या त्रुटि है ??
क्या कोई मुझे गाइड कर सकता है ??
एक बटन 'प्ले वीडियो' कहें, और इसके क्लिक फ़ंक्शन में अपना रननेबल थ्रेड कोड रखें। OnCreate() फ़ंक्शन में अपना स्वयं का धागा गड़बड़ हो सकता है अगर उचित रूप से संभाल नहीं किया जाता है क्योंकि गतिविधि निर्माण को हमेशा ठीक करना पड़ता है। एंड्रॉइड एमुलेटर या फोन में आपने जिस तरह से कोशिश की? –
@RahulSundar मैंने फोन पर कोशिश की। मैं बटन का उपयोग नहीं करना चाहता था। जब मैं गतिविधि में प्रवेश करता हूं तो मैं वीडियो को सीधे खेलना चाहता हूं। यही कारण है कि मैंने किसी भी बटन – edwin
ठीक नहीं किया। बस यह जांचने के लिए कि क्या सब कुछ थ्रेड के साथ ठीक काम करता है, इसे एक बटन से लॉन्च करें। फिर ऑनक्रेट() फ़ंक्शन में इसका उपयोग करें। यह सुनिश्चित करने के लिए कि गतिविधि निर्माण के पूरा होने के बाद वीडियो प्रतिपादन शुरू होता है, पर्याप्त देरी नींद (5 सेकंड) दें और जांचें कि सब कुछ ठीक काम करता है या नहीं। –