Deezer Android SDK (0.10.16)를 사용 중이고 PlaylistPlayer로 노래를 재생하려고합니다. 내가 가장 기본적인 방법으로 그것을 사용하는 경우에도 이상한 문제가 : 사용자가 로그인 할 때이 코드는 아무것도 재생되지 않습니다사용자가 Android 용 Deezer SDK로 로그인했을 때 음악이 재생되지 않음
mPlaylistPlayer = new PlaylistPlayer(getActivity().getApplication(), mDeezerConnect,
new WifiAndMobileNetworkStateChecker());
mPlaylistPlayer.playPlaylist(451051205);
합니다. 나는 아무 오류나 경고도, 음악은 다만 시작하지 않는다. (볼륨 컨트롤은이 경우 미디어 볼륨이 아닌 전화 볼륨을 변경하므로 미디어가 시작되지 않았 음을 확신합니다).
이상한 일은 : 사용자가 로그인하지 않은 상태에서 DeezerConnect가 생성되었지만 아직 인증되지 않은 경우 - 로그에 기록한 다음 로그 아웃하면 노래가 재생됩니다 (각각 30 초 동안).
public class DrawerActivity extends ActionBarActivity {
...
DeezerConnect deezerConnect = null;
PlaylistPlayer mPlaylistPlayer = null;
...
@Override
protected void onCreate(Bundle savedInstanceState) {
deezerConnect = new DeezerConnect(this, applicationID);
...
}
@Override
public void onNavigationDrawerItemSelected(int position) {
FragmentManager fragmentManager = getSupportFragmentManager();
//The user will connect here
if(position==2){
fragmentManager.beginTransaction()
.replace(R.id.container, AccountsFragment.newInstance(deezerConnect))
.commit();
}
}
사용자는 내가, 사용자 정보를 가져 오는 또 다른 조각으로 돌아갈 수, 내 AccountsFragments
@Override
public void onClick(View v) {
if(v == deezerConnectBtn){
if(!mDeezerConnect.isSessionValid())
mDeezerConnect.authorize(getActivity(), DrawerActivity.permissions, mDeezerDialogListener);
else {
mDeezerConnect.logout(getActivity());
deezerLoginTxt.setText("You're not connected");
}
}
}
이 작동에 연결 내 활동에
:
나는 이런 짓을 여전히 Boolean.toString (deezerConnect.isSessionValid()) == true를 얻습니다.
하지만이 액티비티에서 플레이어를 실행하면 Boolean.toString (deezerConnect.isSessionValid()) == false로 실행하면 PLAYING 상태가되고 Boolean.toString (deezerConnect.isSessionValid)) ==
내가) 내 활동 여기에 (이 같은 플레이어를 실행 사실 :
private static PlaylistPlayer mPlaylistPlayer;
private static DeezerConnect mDeezerConnect;
@Override
public static PlayerFragment newInstance(String locationId, String playlistId, DeezerConnect deezerConnect, PlaylistPlayer playlistPlayer) {
PlayerFragment fragment = new PlayerFragment();
...
mPlaylistPlayer = playlistPlayer;
mDeezerConnect = deezerConnect;
}
...
@Override
public void onCreate(Bundle savedInstanceState) {
if(mPlaylistPlayer==null){
try {
mPlaylistPlayer = new PlaylistPlayer(getActivity().getApplication(), mDeezerConnect,
new WifiAndMobileNetworkStateChecker());
mPlaylistPlayer.playPlaylist(mPlaylistId);
mListener.onFragmentInteraction(mPlaylistPlayer);
} catch (TooManyPlayersExceptions tooManyPlayersExceptions) {
tooManyPlayersExceptions.printStackTrace();
Toast.makeText(getActivity(), "toomanyplayers", Toast.LENGTH_SHORT).show();
} catch (DeezerError deezerError) {
Toast.makeText(getActivity(), "deezerError", Toast.LENGTH_SHORT).show();
deezerError.printStackTrace();
}
}
}
a의 통과 : 내 PlayerFragment에서 다음
getSupportFragmentManager().beginTransaction()
.replace(R.id.container, PlayerFragment.newInstance(locationId, playlistId, deezerConnect, mPlaylistPlayer))
.commit();
그리고 마지막 조각에 대한 rguments는 일종의 더티지만 연결되지 않았을 때 매우 잘 작동합니다. 그리고 내가있을 때 플레이어 상태는 항상 멈 춥니 다.
재생 목록을 시도하고 재생하는 순간 사용자가 로그인 한 순간부터 전체 과정을 붙여 넣을 수 있습니까? – XGouchet
@XGouchet 답변을 많이 보내 주셔서 감사합니다. 처음 게시물을 업데이트했습니다. – NRausz
로그인하기 전이나 후에 PlaylistPlayer를 만드시겠습니까? – XGouchet