我想知道我的代码有什么问题,或者我错过了什么,但我看不到......
当我试图在电视模拟器中播放我的任何视频总是说
无法播放此视频
但是相同的代码可以在手机模拟器和我自己的手机中播放视频。我是瞎子......我不知道问题出在哪里?
public class PlayerActivity extends AppCompatActivity {
PlayList mPlayList;
MediaPlayerController mMediaPlayerController;
VideoView videoHolder;
Button mButtonLoadVideos;
Button mButtonPlayAll;
WherePlaysAPI wherePlays =
RestBuilder.createEndpoint().create(WherePlaysAPI.class);
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_player);
mPlayList = new PlayList(new ArrayList<MediaItem>());
setupLoad();
setupPlay();
setupVideo();
}
private void setupVideo() {
videoHolder = (VideoView) findViewById(R.id.idPlayer);
videoHolder.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
@Override
public void onCompletion(MediaPlayer mp) {
play();
}
});
}
private void setupPlay() {
mButtonPlayAll = (Button) findViewById(R.id.buttonPlayAll);
mButtonPlayAll.setEnabled(false);
mButtonPlayAll.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
mMediaPlayerController.next();
Uri video = Uri.parse(mMediaPlayerController.current().getMrl());
videoHolder.setVideoURI(video);
videoHolder.start();
}
});
}
private void setupLoad() {
mButtonLoadVideos = (Button) findViewById(R.id.buttonLoadMediaItems);
mButtonLoadVideos.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
new LoadPlayListTask(v.getContext()).execute();
}
});
}
protected void play() {
mMediaPlayerController.next();
Uri video = Uri.parse(mMediaPlayerController.current().getMrl());
videoHolder.setVideoURI(video);
videoHolder.start();
}
class LoadPlayListTask extends AsyncTask<Void, Void, Void> {
ProgressDialog progressDialog;
Context context;
public LoadPlayListTask(Context context) {
this.context = context;
}
@Override
protected void onPreExecute() {
super.onPreExecute();
progressDialog = new ProgressDialog(context);
progressDialog.setTitle("Loading ...");
progressDialog.show();
}
@Override
protected Void doInBackground(Void... params) {
PlayListResponse playList = wherePlays.getPlayerList(1);
for (MediaItem item : playList.getPlaylist()) {
mPlayList.addMediaItem(item);
publishProgress();
}
return null;
}
@Override
protected void onProgressUpdate(Void... values) {
progressDialog.setTitle("Loading..." + String.valueOf(mPlayList.getPlaylists().size()));
if (mPlayList.getPlaylists().size() >= 1) {
mButtonPlayAll.setEnabled(true);
}
}
@Override
protected void onPostExecute(Void aVoid) {
progressDialog.dismiss();
mMediaPlayerController = MediaPlayerController.getMediaPlayer(mPlayList);
}
}
class UpdateMediaItemPlays extends AsyncTask<Integer, Void, Void> {
@Override
protected Void doInBackground(Integer... params) {
wherePlays.updateMediaItemPlays(1, params[0], "");
return null;
}
}
}