Você deve estar querendo fazer isso. Nesse exemplo ele está usando uma URL da internet pra buscar um vídeo, mas repare que nesse caso, ele espera que todo o vídeo seja lido pra depois ele
private InputStream urlToStream(String url) throws IOException
{
// Open connection to the http url...
HttpConnection connection = (HttpConnection) Connector.open(url);
DataInputStream dataIn = connection.openDataInputStream();
byte[] buffer = new byte[1000];
int read = -1;
// Read the content from url.
ByteArrayOutputStream byteout = new ByteArrayOutputStream();
while ((read = dataIn.read(buffer)) >= 0)
{
byteout.write(buffer, 0, read);
}
dataIn.close();
connection.close();
// Fill InputStream to return with content read from the URL.
ByteArrayInputStream byteIn = new ByteArrayInputStream(byteout
.toByteArray());
return byteIn;
}
Veja que nessa parte do Código, onde ele efetivamente executa, chama o vídeo, ele recebe um InputStream que é o resultado da função acima. Ou seja, você está tentando fazer as duas coisas dentro do while(true) e isso não dará certo. Separe as coisas, primeiro carregue os dados pra sua variável, depois você simplesmente cria o Player Manager e executivo o menino.
void initPlayer()
{
try
{
initDone = false;
if (videoFile == null)
{
midlet.alertError("No video file specified");
return;
}
boolean fromHttp = videoFile.startsWith("http://");
InputStream is = fromHttp ? urlToStream(videoFile) : getClass()
.getResourceAsStream(videoFile);
player = Manager.createPlayer(is, "video/3gpp");
player.addPlayerListener(this);
player.prefetch();
player.realize();
// get the video control and attach it to our canvas
VideoControl videoControl = (VideoControl) (player
.getControl("VideoControl"));
if (videoControl == null)
{
midlet.alertError("VideoControl not supported");
}
else
{
videoControl.initDisplayMode(VideoControl.USE_DIRECT_VIDEO,
this);
videoControl.setVisible(true);
}
initDone = true;
}
catch (IOException ioe)
{
discardPlayer();
midlet.alertError("IOException: " + ioe.getMessage());
}
catch (MediaException me)
{
discardPlayer();
midlet.alertError("MediaException: " + me.getMessage());
}
catch (SecurityException se)
{
discardPlayer();
midlet.alertError("SecurityException: " + se.getMessage());
}
catch (Exception ex)
{
discardPlayer();
midlet.alertError("Exception: " + ex.getMessage());
}
}
Esse exemplo eu peguei no site da Nokia.
www.forumnokia.com
Existem vários exemplos bem legais lá sobre qualquer coisa de J2ME, vale a Pena dar uma olhada.
Midia Guide
http://www.forum.nokia.com/info/sw.nokia.com/id/59c97da0-92fb-4d85-8b7c-3e1b241a6b65/MIDP_Mobile_Media_API_Developers_Guide_v1_0_en.pdf.html
Sample Video - J2ME
http://sw.nokia.com/id/bbe612a1-f988-4fd0-a7ca-fc67f734fc10/MIDP_Mobile_Media_API_Example_Media_Sampler_v1_0.zip
Abraço