2

早送り機能が呼び出されたときに音楽プレーヤーで endSeek 関数を Theos/hook しようとしています。IOS 8.1 を使用しています。問題は、endSeek が呼び出されるポイントに到達しないことです。関数が呼び出されるたびにアラートを設定しました。が呼び出されますが、表示されません。コードにコメントしたので、アラートのみが表示されます。

これはtweak.xmの私のコードです:

@interface MPAVController:NSObject {}

    - (unsigned int)_displayPlaybackState;
    - (void)endSeek;

@end


@interface MPMusicPlayerController:NSObject {}
  + (id)systemMusicPlayer;
    - (void)skipToNextItem;
  - (void)skipToPreviousItem;
@end



%hook MPAVController

-(void)endSeek {

  %orig;

  NSString *str1 = @"Now in seek!";
  UIAlertView *alert1 = [[UIAlertView alloc] initWithTitle:@"Title"
       message:str1
        delegate:nil 
        cancelButtonTitle:@"Cancel" 
        otherButtonTitles:nil];
  [alert1 show];
  [alert1 release]; 

    /*switch ( [self _displayPlaybackState] )
    {
        case 4:
            %orig;
            [[MPMusicPlayerController systemMusicPlayer] skipToNextItem];
                break;
        case 5:
                %orig;
            [[MPMusicPlayerController systemMusicPlayer] skipToPreviousItem];
                break;
        default:
                NSString *str = [NSString stringWithFormat:@"%d",[self _displayPlaybackState]];
                %orig;
            UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Titulo" 
                    message:str
                    delegate:nil 
                    cancelButtonTitle:@"Adiós Edu" 
                    otherButtonTitles:nil];
//    [alert show];
                [alert release]; 
                break;  
    }*/

}

/* -(void)beginSeek {

switch ( [self _displayPlaybackState] )
{
   case 4:
start = [NSDate date];
   %orig;
   break;
   default:
     %orig;
     break;

} 
}
*/

%end

これは私の Makefile です:

export ARCHS = arm64
export TARGET = iphone:clang:8.1
include theos/makefiles/common.mk

TWEAK_NAME = replaceSeek
replaceSeek_FILES = Tweak.xm
replaceSeek_FRAMEWORKS = UIKit MediaPlayer

include $(THEOS_MAKE_PATH)/tweak.mk

after-install::
    install.exec "killall -9 SpringBoard"

および .plist:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Filter</key>
    <dict>
        <key>Bundles</key>
        <array>
            <string>com.apple.music</string>
        </array>
    </dict>
</dict>
</plist>

どんな助けでも大歓迎です。

よろしく。

4

1 に答える 1

0

まあ、それはちょうど plist にあったようです 音楽は、com.apple.music の代わりに com.apple.Music の大文字の M でなければなりません... :P

于 2014-11-30T23:17:24.547 に答える